mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-17 07:20:53 +07:00
123 lines
2.2 KiB
Java
123 lines
2.2 KiB
Java
class D implements I<I>{
|
|
}
|
|
class DT<T> implements I<T>{
|
|
}
|
|
|
|
interface I <T> {
|
|
}
|
|
|
|
<error descr="'I' cannot be inherited with different type arguments: 'I' and 'D'">class CCC extends D implements I<D></error> {
|
|
}
|
|
abstract class CCC2<T> extends DT<T> implements I<T> {
|
|
}
|
|
|
|
class a extends b<d, c> implements c<d, c<c,c>>, d<b<c<c,c>,d>> {}
|
|
class b<K,V> implements c<K, c<V,V>> { }
|
|
interface c<K,V> extends d<b<V,K>> {}
|
|
interface d<K> {}
|
|
|
|
// extending final classes in bounds
|
|
class C<T extends String> {
|
|
<E extends Integer> void f() {}
|
|
}
|
|
|
|
class GenericExtendItself<T, U extends T>
|
|
{
|
|
GenericExtendItself<Object,Object> foo;
|
|
}
|
|
|
|
|
|
////////////////////
|
|
abstract class ZZZZ<E> {
|
|
public abstract E getElement();
|
|
}
|
|
abstract class Z<E> extends ZZZZ<E> {}
|
|
class Z2 extends Z<Integer> {
|
|
public Integer getElement() {
|
|
return null;
|
|
}
|
|
}
|
|
/////////////////
|
|
class BaseC <E> {
|
|
E remove(){
|
|
return null;
|
|
}
|
|
}
|
|
|
|
class DerivedC extends BaseC<String> {
|
|
public String remove() {
|
|
String s = super.remove();
|
|
return null;
|
|
}
|
|
}
|
|
|
|
/// raw in the multiple supers
|
|
interface Int<T> {
|
|
AClass<T> f();
|
|
}
|
|
abstract class AClass<T> implements Int<T> {
|
|
public abstract AClass<T> f();
|
|
}
|
|
|
|
class MyClass extends AClass implements Int{
|
|
public AClass f() {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
class A<T>{
|
|
A(){}
|
|
A(T t){}
|
|
|
|
{
|
|
new A<A>(new A()){};
|
|
}
|
|
}
|
|
|
|
//IDEADEV-4733: this overriding is OK
|
|
class Outer<T>
|
|
{
|
|
public class Inner
|
|
{
|
|
private final T t;
|
|
|
|
public Inner(T t) { this.t = t; }
|
|
|
|
public T getT() { return t; }
|
|
|
|
public String toString() { return t.toString(); }
|
|
}
|
|
}
|
|
|
|
class Other extends Outer<String>
|
|
{
|
|
public class Ither extends Outer<String>.Inner
|
|
{
|
|
public Ither()
|
|
{
|
|
super("hello"); //valid super constructor call
|
|
}
|
|
}
|
|
}
|
|
|
|
//end of //IDEADEV-4733
|
|
interface AI {
|
|
}
|
|
interface BI {
|
|
}
|
|
abstract class AbstractClass<T> {
|
|
AbstractClass(Class<T> clazz) {
|
|
}
|
|
}
|
|
class ConcreteClass extends AbstractClass<AI> {
|
|
ConcreteClass() {
|
|
super(AI.class);
|
|
}
|
|
class InnerClass extends AbstractClass<BI> {
|
|
InnerClass() {
|
|
super(BI.class); //
|
|
}
|
|
}
|
|
}
|
|
///////////////////////
|