草庐IT

local-class

全部标签

java - 为什么 Class.getSimpleName() 没有被缓存?

如果您查看Sun实现Class.getSimpleName()的源代码,您会注意到它似乎每次调用它时都会返回一个新的String实例。然而,Class类中的许多其他功能都被缓存了。由于简单的名称计算似乎并不容易,而且JavaDoc中也没有说它每次都必须返回一个新实例,因此它应该是一个很好的缓存候选者。我想知道是否有任何设计原因不缓存它?我问是因为许多框架一直使用简单的名称,这很容易缓存。 最佳答案 更新:名称缓存在OpenJDK11中在OpenJDK11及更高版本中,类名被缓存。查看Class.java的OpenJDK源代码并搜索p

Java 11 : Local-Variable Syntax for Lambda Parameters - applications

我很好奇Java-11一般而言,但特别是JEP:323它计划将var声明添加到Lambda操作变量。很好地讨论了此功能背后的动机here.考虑文章中的以下引用://#1-LegalITestdivide=(@ATestvarx,finalvary)->x/y;/*#2ModifiersonOld-Styleimplicitparamaters=>Illegal*/ITestdivide=(@ATestx,finaly)->x/y;final修饰符的用法对我来说很清楚,并且符合不变性最佳实践。但是,我不确定注释。能够注释lambda隐式参数的最大好处是什么?您能否提供一个在lambda操

java - 错误 : json defines classes that conflict with classes now provided by Android

在AndroidStudio3上进行发布构建时出现以下错误错误:错误:json定义的类与Android现在提供的类冲突。解决方案包括寻找更新版本或没有相同问题的替代库(例如,对于httpclient,请改用HttpUrlConnection或okhttp),或使用jarjar之类的东西重新打包库。[重复平台类]以下是我的依赖:dependencies{compilefileTree(include:['*.jar'],dir:'libs')androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2'

Java Reflection,为什么在运行时保留父类(super class)型类型参数

所以java有类型删除,它删除类型参数(在运行时没有泛型类型)。有人可以解释为什么要保留父类(superclass)型类型参数吗?classStringListextendsArrayList{publicTypegetType(){Type[]typeArguments=((ParameterizedType)this.getClass().getGenericSuperclass()).getActualTypeArguments();returntypeArguments[0];}}这基本上意味着:newArrayList()//Icannotusereflectiontofin

android - NoSuchFieldError : No static field listView1 of type I in class Lcom/disdemo/R$id; or its superclasses

我在activity_main.xml中有module1(在AndroidStudio中)和listView1(存在于module1的res中)。此模块的MainActivity正在从同一AndroidStudio项目中的另一个模块2启动。我尝试删除module1并再次创建一个具有相同res和java文件的新模块。我仍然遇到同样的问题。 最佳答案 我认为您在库和模块中都有相同名称的布局,或者使用重复的资源ID膨胀多个xml布局。 关于android-NoSuchFieldError:No

android - NoSuchFieldError : No static field listView1 of type I in class Lcom/disdemo/R$id; or its superclasses

我在activity_main.xml中有module1(在AndroidStudio中)和listView1(存在于module1的res中)。此模块的MainActivity正在从同一AndroidStudio项目中的另一个模块2启动。我尝试删除module1并再次创建一个具有相同res和java文件的新模块。我仍然遇到同样的问题。 最佳答案 我认为您在库和模块中都有相同名称的布局,或者使用重复的资源ID膨胀多个xml布局。 关于android-NoSuchFieldError:No

java - 为什么 Stream#reduce 不隐式接受处理父类(super class)型元素的累积函数?

考虑到这些类和累积函数,它们代表了我原始上下文的简化(但重现了相同的问题):abstractstaticclassFoo{abstractintgetK();}staticclassBarextendsFoo{intk;Bar(intk){this.k=k;}intgetK(){returnthis.k;}}privatestaticFoocombined(Fooa1,Fooa2){returnnewBar(a1.getK()+a2.getK());}我试图通过依赖一个单独的函数combined来执行项目的累积(最初是数据索引报告),它直接处理Foo类型的元素。Foooutcome=S

java - 安卓开发 : Having an AsyncTask in a separate class file

我一直在尝试各种示例,试图让自己熟悉AsyncTask。到目前为止,我看到的所有示例都将AsyncTask包含在主Activity的onCreate方法中。我不太喜欢,所以我想看看将它分成自己的类有多难。到目前为止我有这个:主要Activitypackagecom.example.asynctaskactivity;importandroid.os.AsyncTask;importandroid.os.Bundle;importandroid.os.SystemClock;importandroid.app.Activity;importandroid.util.Log;importa

java - 错误 : Could not find or load main class version

我已经在macmavericks系统上下载了Java。但是当我使用命令在终端上键入以查看Java版本时:javaversion出现以下错误Couldnotfindorloadmainclassversion我去了oracle网站并尝试检查我的系统上是否安装了Java,确认系统上安装了Java7。但是为什么我在终端中看不到版本? 最佳答案 尝试java-version如果没有减号,它正在尝试加载一个名为version的程序。 关于java-错误:Couldnotfindorloadmain

java - 二进制 XML 文件行 #0 : Error inflating class ImageView

这个问题在这里已经有了答案:Errorinflatingclassandroid.widget.ImageButton(4个答案)关闭去年。我正在使用Androidstudio3.0我厌倦了解决这个问题。该应用程序不执行它总是向我显示此错误BinaryXMLfileline#0:ErrorinflatingclassImageView这是我的main_activity.xml,我已经更改了我使用ConstraintLayout的xml主要Activity的java代码publicclassMainActivityextendsActivity{Buttonbtn1;@Overridep