Kód: Vybrat vše
package foo;
class Foo {}
...
Foo f = new Foo();
Kód: Vybrat vše
... clz =
Kód: Vybrat vše
Class <Foo> clz = f.getClass();
Kód: Vybrat vše
@Functionalinterface
interface String Consumer {
void accept(String t);
}
Kód: Vybrat vše
StringConsumer consumer = System.out::println;
System.out.println(consumer.getClass().getName()):
B. System
C. PrintStream
D. Proxy
E. FunctionalInterface
F. nelze urcit
reseni: F
3. Predpokladejme nasledujici definice (interface List dedi od interfacu Collection):
Kód: Vybrat vše
java.util.List<String> ls = new java.util.ArrayList<>();
java.util.List<Object> lo = new java.util.ArrayList<>():
java.util.Collection<Object> co;
java.util.Collection<?> cu;
A. lo = ls;
B. co = ls;
C. cu = ls;
D. co = lo;
reseni: C,D
4. Napiste generickou metodu, ktera prohodi dva prvky v poli. Metoda ma tri argumenty - pole libovolneho typu a dva indexy prvku k prohozeni.
reseni:
Kód: Vybrat vše
public static <T> void swap(T[] array, int index1, int index2) {
if (array == null || index1 < 0 || index2 < 0 || index1 >= array.length || index2 >= array.length) {
throw new Exception();
}
T temp = array[index1];
array[index1] = array[index2];
array[index2] = temp;
}
reseni:
Kód: Vybrat vše
public static <T> List <T> emptyList();
Kód: Vybrat vše
public @interface Copyright {
String value() default "Charles University";
}
A.
Kód: Vybrat vše
@Copyright
Kód: Vybrat vše
@Copyright ("me")
Kód: Vybrat vše
@Copyright(value="me")
Kód: Vybrat vše
@Copyright(
setValue("me")
)
7. Mejme interface Hello, ktery reprezentuje vzdalene dostupny objekt (pres Java RMI).
Kód: Vybrat vše
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface Hello extends Remote {
string sayHello() throws RemoteException;
}
Kód: Vybrat vše
Hello hello = (Hello) Naming.lookup("helloservice");
System.out.println(hello.getClass().getName());
Kód: Vybrat vše
Proxy
Modul ma následujici deskriptor (soubor module--info.java):
Kód: Vybrat vše
module com.foo {
exports com.foo.bar;
}
A. veskery kod
B. kod z balicku com.foo.bar
C. kod z balicku com.foo.baz
D. zadny kod
reseni: B
9. Na kterou metodu se zkonvertuje nize uvodena metoda behem prekladu v ramci erasure mechanizmu (t. jake typy budou na mistech generickych parametru)?
Kód: Vybrat vše
public static <T extends Comparable<T>>
int findFirstGreaterThan(T[] at, T elem){
//
}
Kód: Vybrat vše
public static int findFirstGreaterThan(Comparable []at, Comparable elem){
//
}
Mejme tridu Person, ktera ma metodu public String getName(). Dale mejme tridy Student, Teacher, Alumni, apod., které dedi od tridy Person. Napiste metodu, která bere jako parametr kolekci trid Person nebo jakékoliv jeji podtridy (tj. Collection<Person>, Collection<Student>, Collection<Teacher>,...) a vypise jména vsech osob v kolekci (bez pouziti explicitniho pretypovani).
Kód: Vybrat vše
public void printNamesOfPersonsInCollection(Collection
Kód: Vybrat vše
public void printNamesOfPersonsInCollection(Collection <? extends Person> people) {
for (Person person: people){
System.out.println(person.getName()) ;
}
}