草庐IT

reflect.ValueOf

全部标签

java - 调用 Double.valueOf(String s) 和 new Double(String s) 有什么区别?

所以我有一个字符串,我想用该字符串作为值创建一个Double对象。我可以打电话DoublemyDouble=newDouble(myString);或者我可以打电话DoublemyDouble=Double.valueOf(myString);有区别吗?我猜第一个保证在堆上创建一个新对象,第二个可能重用现有对象。额外加分:字符串可能是null,在这种情况下我希望Double是null,但以上两个都抛出空指针异常。有没有写法双myDouble=myString==null?null:Double.valueOf(myString);代码更少? 最佳答案

java - 使用 .toString()、String.valueOf() 和 + ""将字符串缓冲区转换为字符串有什么区别

对于以下三种情况,StringBuffer转换为String的主要区别是什么:案例1:使用toString()StringBuffersb=newStringBuffer("Welcome");Stringst=sb.toString();案例2:使用+""StringBuffersb=newStringBuffer("Welcome");Stringst=sb+"";案例3:使用String.valueOf()StringBuffersb=newStringBuffer("Welcome");Stringst=String.valueOf(sb);哪个是在性能方面使用的最佳实践?

java - NoClassDefFoundError : org/hibernate/annotations/common/reflection/MetadataProvider

我在pom.xml中定义了依赖org.hibernatehibernate-commons-annotations3.3.0.ga我在C:/User/.m2/repository/org/hibernate/hibernate-commons-annotations/3.3.0.ga中有上面的jar我在hibernate.cfg.xml中配置了session工厂和数据源,并尝试在我的主要方法中构建配置:Configurationconfiguration=newConfiguration().configure();StandardServiceRegistryBuilderbuild

java - 为什么 String.valueOf(null) 会导致空指针异常?

为什么String.valueOf(null)会导致空指针异常?预期行为是返回“空”字符串。Stringx=null;System.out.println(String.valueOf(x));这给出了一个“空”字符串。但是System.out.println(String.valueOf(null));会导致空指针异常。 最佳答案 因为String.valueOf(null)选择带有char[]参数的重载方法,然后在newString(null)构造函数。这个选择是在编译时做出的。如果你想显式地使用带有Object参数的重载方法,

Java - 枚举 valueOf "override"命名约定

假设您有以下枚举:publicenumColor{RED("R"),GREEN("G"),BLUE("B");privateStringshortName;privateColor(StringshortName){this.shortName=shortName;}publicstaticColorgetColorByName(StringshortName){for(Colorcolor:Color.values()){if(color.shortName.equals(shortName)){returncolor;}}thrownewIllegalArgumentExcepti

java - 检查 java.lang.reflect.Field 类型是否为字节数组

我没有做太多反射(reflection),所以这个问题可能很明显。例如我有一个类:publicclassDocument{privateStringsomeStr;privatebyte[]contents;//Gettersandsetters}我正在尝试检查字段contents是否是字节数组的一个实例。我尝试了什么:Classclazz=Document.class;Field[]fields=clazz.getDeclaredFields();for(Fieldfield:fields){if(field.getType().isArray()){Objectarray=fiel

Java 等于(): to reflect or not to reflect

这个问题特别与为具有大量字段的对象覆盖equals()方法有关。首先,让我说这个大对象不能在不违反OO原则的情况下分解成多个组件,所以告诉我“没有类应该有超过x个字段”无济于事。继续前进,当我忘记检查其中一个字段是否相等时,问题就出现了。因此,我的equals方法是不正确的。然后我想到使用反射:--coderemovedbecauseitwastoodistracting--这篇文章的目的不一定是重构代码(这甚至不是我正在使用的代码),而是为了了解这是否是个好主意。优点:如果添加了一个新字段,它会自动包含该方法比30个if语句简洁得多缺点:如果添加了一个新字段,它会自动包含,有时这是不

java - sun.reflect.Reflection.getCallerClass 替代方案

来自HowdoIfindthecallerofamethodusingstacktraceorreflection?(因为我没有足够的声誉在那里发表评论)由于sun.reflect.Reflection.getCallerClass在jdk8中已经被移除,有什么替代方案?如何使用sun.misc.SharedSecretsJavaLangAccessaccess=SharedSecrets.getJavaLangAccess();Throwablethrowable=newThrowable();intdepth=access.getStackTraceDepth(throwable)

java - java.lang.reflect.Method.equals(Object obj) 中的名称比较

下面是Java7中java.lang.reflect.Method.equals(Objectobj)的实现:/***Comparesthis{@codeMethod}againstthespecifiedobject.Returns*trueiftheobjectsarethesame.Two{@codeMethods}arethesameif*theyweredeclaredbythesameclassandhavethesamename*andformalparametertypesandreturntype.*/publicbooleanequals(Objectobj){if

java - 在 Java 中可以访问方法 "reflectively"的源代码吗?

恐怕答案是否定的,但也许你们中的一个让我感到惊讶。谢谢。编辑1:我知道这个问题没有多大意义,但我认为这一点已被理解,遗憾的是,答案是否定的。无论如何,我更改了问题的标题,为“反射(reflection)”一词添加了引号,为了以防万一,我会尝试更好地解释我的意图。我有一个类型的实例,它是具有一些已知方法的某个抽象类型的子类。我想在运行时获得一个字符串,其中包含实例类型中此类方法之一的实际实现的源代码。我认为值得指出的是实例的实际类型可能是一个匿名内部类....另外,源代码的“反编译”版本就足够了。我想获取源码的方法,大多数时候只有一行....谢谢。 最佳答案