byte
és short
primitív típusok csomagoló osztályai rendre Byte
és Short
.
class
kulcsszó előtt megengedettek más módosítók is beágyazott tagosztály esetén.
.java
kiterjesztés hozzáadásával képzett forrásfájlban szerepeljen, csak ha a típus publikus, továbbá ugyancsak ez ajánlott, ha a típust
tartalmazó csomag más fordítási egysége hivatkozik a típusra.
objverem
tesztprogramot külön fájlba (objverem.java
) írtuk, akkor az első fordítási figyelmeztetés a következő:objverem.java:7: warning: [unchecked] unchecked call to push(A) as a member of the raw type Verem iv.push(5); iv.push(6); ^ ...
@SuppressWarnings("unchecked")
R
nyers típus bármely nem-statikus tag-típusa, melyet maga az R
definiált, vagyis nem örökölt.
... public <A extends Annotation> A getAnnotation(Class<A> k) {...} ... Class<? extends Number> kn = n.getClass(); // ki == kn
f(new Int(42), "szöveg");
jelentése helyesen: f(new Object[] { new Int(42),"szöveg" } );
listáz(obj3);
eredménye pontosabban: "class java.lang.String" 3-szor egymás után!
org.omg.PortableServer.Servant
leszármazottjaként), hanem delegáció útján.
autobusz.java
, gepjarmu.java
, teherauto.java
: Az IDL interfész Java nyelvi változata. Kiterjesztik (közvetve) az org.omg.CORBA.Object
interfészt, így biztosítva az alapvető CORBA funkcionalitást.public interface autobusz extends autobuszOperations, gepjarmu {} public interface gepjarmu extends gepjarmuOperations, org.omg.CORBA.Object, org.omg.CORBA.portable.IDLEntity {}
autobuszHelper.java
, gepjarmuHelper.java
, teherautoHelper.java
: absztrakt Java osztályok, melyek segédmetódusokat tartalmaznak.abstract public class autobuszHelper { ...}
autobuszPOA.java
, gepjarmuPOA.java
, teherautoPOA.java
: (az _ImplBase osztályok helyett) ... másrészt implementálják a műveletleíró Operations
interfészeket, ezzel teremtve meg a kapcsolatot a szerver- és kliens oldal között.public abstract class autobuszPOA extends org.omg.PortableServer.Servant implements autobuszOperations, org.omg.CORBA.portable.InvokeHandler { ...}
gepjarmu
megvalósítására a gepjarmuServer
osztályot írjuk meg, melyet a gepjarmuPOA kiterjesztéseként és annak segítségével implementálunk.
public interface AutobuszOperations extends GepjarmuOperations public interface TeherautoOperations extends GepjarmuOperationsMivel a Java nem biztosít számunkra többszörös öröklést, egy kis gondban vagyunk az AutobuszServer megírásakor. Az ugyanis nem tudja egyszerre kiterjeszteni az AutobuszPOA és a GepjarmuServer osztályokat. A megoldás az, hogy az öröklődés mellett válasszuk a delegálás módszerét. A POATie osztályok az ún. delegátorok. Ezek az osztályok kiterjesztik a megfelelő POA osztályokat, saját attributumként pedig rendelkezésükre áll a kiszolgáló egy példánya. A delegátor osztály a beérkező metódushívásokat átlátszóan továbbítja az
igazikiszolgálóhoz.
new BigDecimal("+123.456")
nem hibás, eredménye: 123.456
java.util.jar
csomagban (lásd: 9.7.)