小编nes*_*oop的帖子

T类如何以及何时从Integer变为String而不是显示错误/异常

我所做的就是了解Generics在Java中的工作原理.我写了以下代码:

public class Test {

    public static void main(String... args) throws Exception{  
        Foo o = new Foo<Integer>(new Integer(5));
        o.fun();
    }
}       

class Foo<T> {

    private T t;

    public Foo(T t) throws InstantiationException, IllegalAccessException{
       System.out.println("1. T is "+t.getClass());
       this.t = (T)"test";
       System.out.println("2. T is "+t.getClass());
   }

   void fun(){
       System.out.println("3. T is "+t.getClass()+" t = "+t);
   }
}
Run Code Online (Sandbox Code Playgroud)

输出是

1. T is class java.lang.Integer
2. T is Still class java.lang.Integer
3. T is class java.lang.String t = test
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么这会将Class从Integer更改为String而不显示错误/异常.

第二件事是,当我写信t = …

java generics incompatibletypeerror

7
推荐指数
1
解决办法
730
查看次数

System.Reflection - 如何判断MethodInfo对象是Method还是Property访问器?

我有两个相似(不完全相同)的dll,其中一个实际上是另一个的一部分.我试图看看是否仍然存在兼容性(即,如果较小的仍然完全包含在较大的内容中).

我这样做是通过迭代较小的dll中的所有类型并检查它们中的每个方法是否也存在(名称和参数列表)在较大的dll中.

问题是Assembly.GetMethods()返回方法和属性getter/setter,我猜,是的,是一种方法,但在这种情况下这对我不利.

所以,我的问题是,如何判断MethodInfo对象是存储属性还是实际方法?

c# reflection

5
推荐指数
1
解决办法
2400
查看次数

标签 统计

c# ×1

generics ×1

incompatibletypeerror ×1

java ×1

reflection ×1