草庐IT

java - 将 Java 对象的类型/类名称声明为字符串

我想知道是否可以在Java中声明某个给定类型的新对象,因为我将该类型表示为Class对象。例如,假设我有SomeClassobj1;Classc=obj1.getClass();现在我想使用“c”并用它来声明该类型的新对象。沿着这些线的东西:Classmy_new_var;这样my_new_var将成为与obj1具有相同类型/类的变量。我猜,这与我们是否可以在新变量的声明中使用Class对象(或与该Class对象相关的对象)作为类型直接相关。这是可能的还是不可能的,因为Java是强类型的?提前致谢布鲁诺 最佳答案 YourTypen

java - 将 int 转换为 byte 在 Netbeans 和 JCreator 中给出不同的结果

根据OP的评论:不能再复制了我使用NetBeans开发我的Java程序,它们运行良好。但是当我为我的程序创建一个JAR文件时,它会为我提供相同输入的不同输出。我很难调试,我发现在NetBeans中,当我将int转换为byte时,结果范围在[-128;128),而JCreator中相同的代码在[0;256)如何使范围始终[-128;128)?privatestaticbyte[]convertHexString(Stringss){try{bytedigest[]=newbyte[ss.length()/2];for(inti=0;i 最佳答案

java - 使用 & 的奇怪 Java 转换语法

这个问题在这里已经有了答案:Javalambdaexpressions,casting,andComparators(3个答案)关闭4年前。(实际上,这个问题与lambda没有直接关系,而是与使用边界的强制转换相关,因此标记为重复的问题不提供该问题的答案。您将找到答案我的问题在这里:HowshouldIcastforJavagenericwithmultiplebounds?)就在最近,我参加了一个SW工艺session。在所讨论的示例之一中,我遇到了这种类型转换,它似乎是自Java8以来有效的Java。ObjectaTest=(String&CharSequence)"test";我

java - 调用接受 Class<T> 并返回 T 的泛型方法时,如何返回特定类型的列表?

我正在使用这个签名从一个库中调用一个方法:publicTget(Classc)我想要一个List作为返回值。但是这样调用它不会编译(“无法从参数化类型中选择”):ListmyClasses=get(List.class);这会编译,但会给出警告:ListmyClasses=get(List.class);警告说“未经检查的分配”。我怎样才能避免此警告并避免转换我的名单? 最佳答案 您在这里使用的是泛型,因此列表中项目的基础类型在运行时已被删除,编译器知道它无法在编译时为您检查它,因此出现警告。如果您在这里使用通用类型,您将无法避免警

java - 为什么不能将 Byte 对象/字节值转换为 Double 对象?从 Byte 到 Double 的转换会影响精度吗?

publicclassPrimitive{publicstaticvoidmain(String[]args){bytex=5;Doubley=(Double)x;//Error:CannotcastfrombytetoDouble.Byten=7;Doublem=(Double)n;//Error:cannotcastfromBytetoDouble.doublec=n;//workingright..."doubleisprimitiveandByteisobject".}}阻止将Byte转换为Double有什么意义?..如果我没记错的话,出于精确原因我知道DoubletoByte

Java - 使用 WatchEvent 抑制未经检查的转换警告是否安全?

我有以下测试代码:FileSystemfs=FileSystems.getDefault();Pathconf=fs.getPath(".");WatchKeykey=null;try{WatchServicewatcher=fs.newWatchService();conf.register(watcher,StandardWatchEventKinds.ENTRY_MODIFY);while(true){key=watcher.take();//waitsfor(WatchEventevent:key.pollEvents()){WatchEvent.Kindkind=event.

java - 无法将类 "X"转换为类 "Y",即使 X 扩展了 Y?

出于某种原因,尝试将一个类X转换为另一个类Y,在第三个类Z中抛出ClassCastException。这对我来说似乎是错误的,因为类X扩展了另一个类Y。是否有任何特定原因导致类X无法转换为Y,即使X对其进行了扩展?引用如下代码:是:publicabstractclassY{/***Calledwhentheextensionisenabled.*/publicvoidonEnable(){}}X:publicclassXextendsY{@OverridepublicvoidonEnable(){//Extensionspecificcode.}}Z:(此代码是ClassCastExc

java - 向 Java 类库添加函数

我使用的Java类库在很多方面都不完整:我觉得有很多类应该内置额外的成​​员函数。但是,我不确定添加这些成员函数的最佳实践。让我们调用不足的基类A。classA{publicA(/*longarbitraryarguments*/){//...}publicA(/*longevenmorearbitraryarguments*/){//...}publicintfunc(){return1;}}理想情况下,我想向A添加一个函数。但是,我不能那样做。我的选择是:classBextendsA{//ImplementALLofA'sconstructorsherepublicintreall

需要 Java 泛型类型转换吗?

这是我教科书中的代码:Stack[]a=(Stack[])newStack[N];我的问题是:为什么是“newStack[N]”?为什么要对创建的新堆栈数组进行类型转换?我试了一下Stack[]a=newStack[N];它编译并运行良好。即使在将字符串插入a并打印pop方法之后。此外,将int插入会立即给我一个编译器错误,所以为什么有必要将其类型转换为Stack[]具体是什么? 最佳答案 您不能创建具有参数化类型的数组(参见RestrictionsonGenerics)。所以你不能使用...=newStack[N].使用...=n

Java:使用枚举的动态类型转换

我正在尝试按照以下方式做一些事情:publicvoidsetContents(Object[]values){...//A.thisworksmRank=((String)(values[Columns.RANK.index]));//B.doesn'twork(entirelineunderlinedbynetbeans)mRank=(Columns.RANK.type.cast(values[Columns.RANK.index]));//incompatibletypes:requiredjava,lang.Stringfound:java.lang.Object//C.does