Java 泛型和子类型
创建一个泛型类型为Java 泛型和子类型,java,generics,Java,Generics,创建一个泛型类型为T的类。定义第二个类型参数的类的子类,称为V。使用对象从两个类调用方法。使用不同的对象创建两个对象 这就是问题所在 如果有人认为这不是家庭作业的话。我正在做一些java论文练习。我不明白如何“用不同的对象创建两个对象”。有人能帮忙吗 class Gen<T> { T obj; Gen(T ob) { obj = ob; } T getobj() { return obj; } } class Gen2<T, V
T
的类。定义第二个类型参数的类的子类,称为V
。使用对象从两个类调用方法。使用不同的对象创建两个对象
这就是问题所在
如果有人认为这不是家庭作业的话。我正在做一些java论文练习。我不明白如何“用不同的对象创建两个对象”。有人能帮忙吗
class Gen<T>
{
T obj;
Gen(T ob)
{
obj = ob;
}
T getobj()
{
return obj;
}
}
class Gen2<T, V> extends Gen<T>
{
V obj1;
Gen2(T ob,V ob1)
{
super(ob);
obj1 = ob1;
}
V getobj1()
{
return obj1;
}
}
public class Ch2Lu4Ex3
{
public static void main(String args[])
{
Gen2<String,String> g = new Gen2<String,String>("robin","raj");
System.out.println(g.getobj1());
System.out.println(g.getobj());
}
}
class-Gen
{
T-obj;
总务(产科)
{
obj=ob;
}
T getobj()
{
返回obj;
}
}
类Gen2扩展了Gen
{
V-obj1;
第二代(T ob,V ob1)
{
超级(ob);
obj1=ob1;
}
V getobj1()
{
返回obj1;
}
}
公共类Ch2Lu4Ex3
{
公共静态void main(字符串参数[])
{
Gen2 g=新的Gen2(“罗宾”、“拉吉”);
System.out.println(g.getobj1());
System.out.println(g.getobj());
}
}
好吧,你可以做如下事情:
Gen<Integer> gen1 = new Gen<Integer>(10);
Gen2<Integer> gen2 = new Gen2<Integer,String>(10,"Hello");
gen1=新的Gen(10);
Gen2 Gen2=新的Gen2(10,“你好”);
或者您可以将它们合并,因为它们位于同一层次结构上
Gen<Integer> gen1 = new Gen2<Integer,String>(10,"Hello");
gen1=新的Gen2(10,“你好”);
好吧,你可以做如下事情:
Gen<Integer> gen1 = new Gen<Integer>(10);
Gen2<Integer> gen2 = new Gen2<Integer,String>(10,"Hello");
gen1=新的Gen(10);
Gen2 Gen2=新的Gen2(10,“你好”);
或者您可以将它们合并,因为它们位于同一层次结构上
Gen<Integer> gen1 = new Gen2<Integer,String>(10,"Hello");
gen1=新的Gen2(10,“你好”);
您是否要求:
Gen2<String,String> g = new Gen2<String,String>("robin","raj");
Gen2<Integer,Integer> h = new Gen2<Integer,Integer>(1, 2);
gen2g=新的Gen2(“罗宾”、“拉吉”);
Gen2 h=新的Gen2(1,2);
还是我误解了你的问题?你是在问这样的问题:
Gen2<String,String> g = new Gen2<String,String>("robin","raj");
Gen2<Integer,Integer> h = new Gen2<Integer,Integer>(1, 2);
gen2g=新的Gen2(“罗宾”、“拉吉”);
Gen2 h=新的Gen2(1,2);
还是我误解了你的问题?问题的最后一部分: 使用不同的对象创建两个对象
gen2inst=新的Gen2(1,“罗宾”);
问题的最后一部分:
使用不同的对象创建两个对象
gen2inst=新的Gen2(1,“罗宾”);
我不明白这里有什么问题。为什么你不能提供不同的通用参数呢?好吧,我做了问题要求的所有事情,但最后一行让我困惑。我不明白这里的问题是什么。为什么你不能只提供不同的泛型参数呢?我做了问题要求的所有事情,但最后一行让我困惑。@Robin你基本上是在传递两个不同的abject类型作为泛型类型参数(一个是整数,另一个是字符串)@Robin是的,引用的问题措辞非常糟糕。“泛型类型参数”是一个更好的措辞。@Robin你基本上是在传递两种不同的abject类型作为泛型类型参数(一个是整数,另一个是字符串)@Robin是的,引用的问题措辞非常糟糕。“泛型类型参数”是一个更好的措辞。g
和h
都是Gen2
的实例,但是它们使用不同的泛型类型。对于g
实例,T
和V
类型具有typeString
。相比之下,T
和V
都属于h
的Integer
类型。g
和h
都是Gen2
的实例,但它们使用的泛型不同。对于g
实例,T
和V
类型具有typeString
。相比之下,T
和V
都属于Integer
类型,用于h
。