Tag: reflection

instanceof和Class.isAssignableFrom(…)有什么区别?

以下哪一项比较好? a instanceof B 要么 B.class.isAssignableFrom(a.getClass()) 我所知道的唯一区别是,当'a'为空时,第一个返回false,而第二个抛出exception。 除此之外,他们总是给出相同的结果吗?

如何使用reflection获取variables名称?

例如, static void Main() { var someVar = 3; Console.Write(GetVariableName(someVar)); } 这个程序的输出应该是: someVar 我怎样才能做到这一点使用reflection?

dynamic查找代表原始Javatypes的类

我需要在Java中进行一些reflection方法调用。 这些调用将包括具有基本types(int,double等)参数的方法。 在查找方法时,指定这种types的方法是int.class,double.class等。 我面临的挑战是我接受来自外部来源的input,将dynamic地指定types。 因此,我也需要dynamic地创build这些类引用。 设想一个分隔文件的方法名称列表,其中包含参数types列表: doSomething int double doSomethingElse java.lang.String boolean 如果input类似java.lang.String ,我知道我可以使用Class.forName("java.lang.String")到该类实例。 有什么方法可以使用该方法或其他方法来获取原始types类? 编辑:感谢所有的受访者。 看起来很清楚,没有内build的方法来干净地做我想做的事情,所以我将决定重用Spring框架中的ClassUtils类。 它似乎包含一个替代Class.forName(),将符合我的要求。

如何在不使用string名称的情况下提升PropertyChanged事件

如果能够在不明确指定更改属性的名称的情况下引发“PropertyChanged”事件,那将是一件好事。 我想要做这样的事情: public string MyString { get { return _myString; } set { ChangePropertyAndNotify<string>(val=>_myString=val, value); } } private void ChangePropertyAndNotify<T>(Action<T> setter, T value) { setter(value); PropertyChangedEventHandler handler = PropertyChanged; if (handler != null) { handler(this, new PropertyChangedEventArgs(setter.Method.Name)); } } 在这种情况下,收到的名称是lambda-method的名称:“<set_MyString> b__0”。 我可以肯定,修剪“<set_”和“> b__0”将始终提供正确的属性名称? 有没有其他通知有关财产变化(从财产本身)? 谢谢。

INotifyPropertyChanged属性名称 – 硬编码与reflection?

使用INotifyPropertyChanged时,指定属性名称的最佳方法是什么? 大多数示例将属性名称硬编码为PropertyChanged事件上的参数。 我正在考虑使用MethodBase.GetCurrentMethod.Name.Substring(4),但是对reflection开销有点不安。

Java中a.getClass()和A.class之间的区别是什么?

在Java中,围绕使用a.getClass()或A.class的select存在哪些优点/缺点? 任何一个都可以在任何需要Class<?>地方使用,但是我想在不同情况下使用这两个方法会有性能或者其他微妙的好处(就像Class.forName()和ClassLoader.loadClass() 。

我想在运行时获得一个variables的types

我想在运行时获得一个variables的types。 我如何做到这一点?

转储一个Java对象的属性

有一个库将recursion转储/打印对象的属性? 我正在寻找类似于Firebug中的console.dir()函数。 我知道commons-lang ReflectionToStringBuilder,但它不recursion到一个对象。 即,如果我运行以下: public class ToString { public static void main(String [] args) { System.out.println(ReflectionToStringBuilder.toString(new Outer(), ToStringStyle.MULTI_LINE_STYLE)); } private static class Outer { private int intValue = 5; private Inner innerValue = new Inner(); } private static class Inner { private String stringValue = "foo"; } } 我收到: ToString $ Outer @ 1b67f74 […]

如何使用reflection来获取属性值

我有以下代码: FieldInfo[] fieldInfos; fieldInfos = GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance); 我想要做的是在运行时使用reflection获取当前实例化实例的属性之一的值。 我该怎么做?

返回在JavaScript文件中定义的所有函数

对于下面的脚本,我该如何编写一个函数,将所有的脚本函数作为数组返回? 我想返回一个在脚本中定义的函数的数组,以便我可以打印脚本中定义的每个函数的摘要。 function getAllFunctions(){ //this is the function I'm trying to write //return all the functions that are defined in the script where this //function is defined. //In this case, it would return this array of functions [foo, bar, baz, //getAllFunctions], since these are the functions that are defined in this //script. } function foo(){ […]