java中 如何得到泛型参数的类型,并在另一个方法中使用
比如classC{public<TextendA>voidset(Tt){}publucTget(){}}ClassBextendsA{}ClassDextendsB{}...
比如
class C
{
public <T extend A> void set(T t)
{
}
publuc T get()
{
}
}
Class B extends A
{
}
Class D extends B
{
}
public static void main(String[] args)
{
C c = new C();
B b = new B();
c.set(b);
//该如何写C类中的get和set方法使下列语句不出错
B bb = c.get();
c.set(new D());
D dd = c.get();
}
不好意思,忘记说了:不能不能使用类泛型( Class B<T>)。 展开
class C
{
public <T extend A> void set(T t)
{
}
publuc T get()
{
}
}
Class B extends A
{
}
Class D extends B
{
}
public static void main(String[] args)
{
C c = new C();
B b = new B();
c.set(b);
//该如何写C类中的get和set方法使下列语句不出错
B bb = c.get();
c.set(new D());
D dd = c.get();
}
不好意思,忘记说了:不能不能使用类泛型( Class B<T>)。 展开
3个回答
展开全部
package com.monical.basis.designPattern;
public class Test0717 {
public static void main(String[] args) {
C c = new C();
B b = new B();
c.set(b);
// 下面无问题
B bb = (B) c.get();
c.set(new D());
D dd = (D) c.get();
}
}
class A {
}
class C<T> {
private T t;
public void set(T t) {
this.t = t;
}
public T get() {
return t;
}
}
class B extends A {
}
class D extends B {
}
展开全部
public class B { public <T extends B> T set(T t) { return t;//这里接受到return回去。 } public <T> void get() { //注意这里String不是B的子类,会报错。 T t = (T) set(new String()); }}
希望对你能有所帮助。
希望对你能有所帮助。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public class B { public <T extends B> T set(T t) { return t;//这里接受到return回去。 } public <T> void get() { //注意这里String不是B的子类,会报错。 T t = (T) set(new String()); }}
希望对你能有所帮助。
希望对你能有所帮助。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询