草庐IT

base_classes

全部标签

java - int.class.isInstance(Object) 是矛盾的吗?

这是一个例子:publicbooleancheck(Classclazz,Objecto){returnclazz.isInstance(o);}check(int.class,7);//returnsfalse自isInstance接受Object,它不适用于int,因为int是原始类型并自动装箱为Integer.那么是否有可能编写一个通用的检查方法?或者我应该确保clazz的类型是Class? 最佳答案 并不是所有的Class对象都代表类/引用类型;还有Class对象表示原始类型。这很有用,因为在对字段和方法使用反射时,您经常需

java - Sonar 标志 "Bad practice": Usage of GetResource in XYZ may be unsafe if class is extended

Sonar在我们的Java项目中指示这个错误。欢迎任何有关安全编程的建议!URLurl=getClass().getResource("/myWonderfulResource.txt");if(url==null){thrownewIllegalStateException("Filenotfound:/myWonderfulResource.txt");} 最佳答案 将类设为final,使其无法扩展。警告是为了防止扩展类(可能)尝试使用不存在的资源。 关于java-Sonar标志"B

java - 为什么父类(super class)的实例可以放入子类的数组中?

假设我们有2个类:classX{}classYextendsX{}在main函数中创建一个数组:Y[]yArr=newY[3]//createdY'sclassobjectsarrayX[]xArr=yArr;xArr[0]=newX()//VALID.WHY?怎么可能??因为xArr指的是Y[]对象,据我所知,它不能创建X对象。 最佳答案 Java编译器允许这样做,因为在Java中数组是协变的。也就是说,可以说:Superclass[]arr=newSubclass[3];这允许诸如您的xArr[0]=newX();之类的代码进行

java - 在它的抽象父类(super class)中使用子类的泛型类型?

在我的代码中有以下抽象父类(superclass)publicabstractclassAbstractClass{...}还有一些子类比如publicclassChildClassAextendsAbstractClass{...}publicclassChildClassBextendsAbstractClass{...}我正在寻找一种优雅的方式来以通用方式在抽象类中使用子类的通用类型(GenericTypeA、GenericTypeB等)。为了解决这个问题我目前定义了方法protectedabstractClassgetGenericTypeClass();在我的抽象类中并实现了

java - 何时使用 hibernate.connection.provider_class

什么时候应该使用hibernate.connection.provider_class?我有点混淆它和“hibernate.connection.diver_class”。provider_class可能对连接池有用还有其他我们可以使用provider_class的目的吗? 最佳答案 连接提供程序的另一个用途是随着时间的推移维护session,对于mysql+hibernate的组合尤其如此。如果您没有正确配置的连接提供程序来处理来自mysql的超时,那么如果您有一段时间不活动,您可能迟早会断开与数据库的连接。

Java 泛型 : Obtaining a Class<Collection<T>>?

我在使用泛型时遇到问题。给定以下示例:classA{publicA(ClassmyType){}}classBextendsA>{publicB(ClassmyEType){super(???);}}什么???应该?Collection.class不工作...Collection.class两者都不。(Class>)Collection.class不工作...如果有java泛型大师,我需要帮助...:/ 最佳答案 你不可能得到Class>除了Collection.class,因为类型删除。你必须使用不安全的转换来转换Collecti

Java 和 .NET : Base64 conversion confusion

我在将文本转换为Java(Android)和.NET(VisualBasic)中的Base64字符串时遇到问题。ASCII字符的普通(可读)形式可以很好地转换。但是当涉及到特殊字符(代码大于128的字符)时,它们给我带来了麻烦。例如,我尝试转换ASCII值为65的字符代码(字符“A”)。我的Java代码是:chara=65;Stringc=String.valueOf(a);bytebt[]=c.getBytes();Stringresult=Base64.encodeToString(bt,Base64.DEFAULT);我的.NET代码是:DimcAsString=Chr(65)D

java - 优雅地处理 TypeMirror 和 Class

我刚刚在这里开始使用javaxAnnotationProcessing,遇到了一个丑陋的案例。我将在描述我的学习过程的一系列伪代码行中对其进行说明:MyAnnotationann=elementIfound.getAnnotation(MyAnnotation.class);//Classclazz=ann.getCustomClass();//CanthrowMirroredTypeException!//Classeswithinthecompilationunitdon'texistinthisformatcompiletime!//Searchwebandfindthisalt

java微优化: combine set of boolean instance variables to bit vector based on int

我们有一个包含很多实例的类,遇到了内存问题。因此,我们尽量减少这个类的内存需求。一种想法如下。该类有许多boolean实例变量,在天真的实现中,每个实例变量都会占用一个词。可以考虑将它们组合成一个存储在int中的微型位vector,这样它们的组合内存需求就是一个字。但我怀疑JavaVM无论如何都会进行这种优化,因此手动执行它不会获得任何额外的节省。对吧? 最佳答案 boolean值使用1个字节的内存(在热点上)。您可以使用替代方案:一个BitSet:每个boolean值大约使用1位+类本身的开销、对BitSet的引用、对BitSet

java - Class对象A是在JVM加载A类时创建的,还是我调用A.class时创建的?

据我所知,每个类都有一个Class对象。我使用synchronize时有一种情况,例如:publicclassA{publicstaticvoidmain(String...args){synchronize(A.class){//dosomething...}}}这将锁定A的Class对象,对吗?这个Class对象是什么时候创建的?它是在JVM加载A类时创建的还是在我调用A.class时创建的?我在JLS中找不到详细信息,有人可以提供相关链接吗? 最佳答案 thiswilllockA'sClassobject,right?是的。m