Tag: Java

从任何地方引用项目目录

我目前正在intellij编写一个Java / kotlin项目,并且必须使用文件读取器来获取XML和其他基于文本的文件。 我已经做了一个名为文件的目录,我存储所有必要的文件。 我的问题是,我需要为每个方法调用引用文件目录,因为它是不同的,取决于从哪个目录调用的方法调用一个新的路径。 有没有办法引用项目的根目录或文件目录,并使其无处不在,像System.getDirectory(“文件”或“根”)等 我目前正在使用System.getProperty(“user.dir”),但是这个路径是主观的被调用的地方,因此不是我正在寻找的。

与GWT Web应用程序HTTP错误500

我已经阅读了大量的材料,但我无法弄清楚发生了什么。 我正在用Eclipse Oxygen,GWT 2.8,MapDB3做一个简单的Web应用程序,当我尝试通过以Jetty方式运行 – > GWT开发模式来启动Web应用程序时,我获得了上述错误。 我疯了 访问/ asteonlineing /迎接问题。 原因:HTTP 500服务器错误 引起:java.lang.NoClassDefFoundError:kotlin / jvm / internal / Intrinsics at org.mapdb.DBMaker.fileDB(DBMaker.kt) at com.google.asteonlineing.server.AoLServiceImpl.<init>(AoLServiceImpl.java:26) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) […a lot more] 我试图将kotlin的jar添加到我的项目的lib目录中,但是错误稍微改变,并且一直是http错误500,但是关于: java.lang.NoClassDefFoundError:org / eclipse / collections / impl / list / mutable / primitive / LongArrayList 最后我发现MapDB 3.0.5有一长串的依赖关系。 我已经安装了所有这些,错误消失,但其他人来了,但代码相关。

Json给kotlin数据类

有没有现成的服务从json模型生成kotlin数据类的方式http://www.jsonschema2pojo.org/ site? 我的新项目已经超过了复杂的API响应,所以它会节省我的时间。

Android Studio不断生成类似Eclipse的文件

我正在使用Android Studio 3.0.1,并且我注意到,对于我的一个项目(只有这个项目),它会生成.project文件和像Eclipse这样的bin目录(我想)。 该项目是在AS 3.0.1中创建的,并没有从Eclipse或其他任何东西中迁移过来。 它也不使用任何花哨的Gradle插件或依赖 – 只是生成的(AppCompat + Kotlin)。 你有什么想法为什么这样做? 另外,当我试图准备一个最小化的复制项目时,我注意到问题只是通过复制粘贴整个项目目录而消失,因此可能没有意义与您共享。 使用两个项目副本(让我们称他们为original和copy )我能够发现,当我关闭Android Studio并使用git clean -xfd清理两个副本 copy在打开时没有问题 – 没有类似Eclipse的文件 original打开时仍然有问题(文件生成) diff -r在打开它们之前(所以在git clean )只给出这个: 二进制文件../PWTA_Proj2/.git/index和./.git/index不同 他们两个都会让Android Studio在打开时显示如下错误: 检测到不支持的模块:以下模块不支持编译:PWTA_Proj2。 不幸的是,在一个项目中不能有非Gradle Java模块和Android-Gradle模块。 尽管有错误,我可以正常建立项目。 另外我没有任何非Gradle模块 – 该项目非常简单,由AS生成。 唯一不太常见的是该项目包含一些AIDL文件。 编辑#1:Gradle文件: 顶级build.gradle : // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { […]

在org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated找不到属性’run’

我正在使用Gradle的Spring Boot。 升级到以下内容: classpath(“org.springframework.boot:spring-boot-gradle-plugin:1.3.0.RC1”) 。 。 。 从1.2.7.RELEASE导致以下问题: * What went wrong: A problem occurred evaluating root project ‘vampr’. > Could not find property ‘run’ on org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated@12e13f2b. 如何解决这个问题? 构建文件: buildscript { ext.kotlin_version = ‘1.0.0-beta-1038’ repositories { maven { url “https://repo.spring.io/libs-milestone” } maven { url “https://repo.spring.io/libs-release” } mavenLocal() mavenCentral() } dependencies { classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version” classpath(“org.springframework.boot:spring-boot-gradle-plugin:1.2.7.RELEASE”) } […]

Java:用lambdas替换交换机。 值得?

在检查事件时,使用带有开关或代码的代码块是一件常见的事情。 当简单时它可以是干净的代码,但似乎仍然有比所需要的更多的行,并可以使用lambdas简化。 用if阻止: if(action == ACTION_1){ doAction1(); } else if(action == ACTION_2){ doAction2(); } else { doDefaultAction(); } 用开关闭锁: switch(action){ case ACTION_1: doAction1(); break; case ACTION_2: doAction2(); break; default: doDefaultAction(); } 使用实用程序类With lambda来阻止使用下面的代码: with(action) .when(ACTION_1, this::doAction1) .when(ACTION_2, this::doAction2) .byDefault(this::doDefaultAction) 使用lambdas的代码较少,但问题是:比其他人更容易阅读吗? 更容易维护? 关于性能lambda是最差的,但是对于性能不重要的情况,lambda版本比switch / if块更短。 那么,你怎么看? 也许有一种比这更短的Kotlin方法,我只专注于java,我喜欢Kotlin,但编译对于我的项目来说仍然太慢。 当块必须返回一个特定的值时,可以使用类似的工具类。 仅供参考,lambdas类是在这里,我没有检查错误,只是迅速为这个例子: public class With { private final T […]

如何获得ResultSet字符串数组?

我有一个查询是击中一个具有数组列的表。 当我正在处理我的记录,我想采取数组列的数据,并把它像一个字符串数组,并抓住第一个值。 我曾假设我可以做到以下几点: while (resultSet.next()) { val clients = resultSet.getArray(“clients”) println(clients[0]) } 但是当我这样做,我得到的错误: 错误:(34,3)Kotlin:未解决的参考。 由于接收器types不匹配,以下候选者都不适用:@InlineOnly public operator inline fun Map.get(key:Int):??? 在kotlin.collections中定义@SinceKotlin公共运算符乐趣MatchGroupCollection.get(name:String):MatchGroup? 在kotlin.text中定义 getArray返回typesArray! 所以我假设我可以通过索引访问值。 我需要做什么来访问这个值的数组?

许多小模块,或几个大型模块的最佳构建性能?

几年前,当第一次采用gradle for Android(在Gradle 2.0之前)时,我发现使用和取决于一个模块有一些开销,所以我远离将我的项目拆分成更小的模块,而是创建非常大的模块。 在尝试了一些其他的构建系统(比如Buck)之后,通过将你的代码分解成多个小模块来获得性能。 一些像Kotlin这样的现代编程语言甚至有专门建立在将你的代码分解成模块的概念的可见性修饰符。 我们目前在Gradle 2.14.1(差不多3.0),在过去几个版本中,他们引用了巨大的性能收益。 随着Gradle / Android插件在过去几年的变化,它现在是否产生更快的构建,将您的代码拆分成更小的模块,或者使用更少的大模块?

使用fragmenttransaction添加嵌套片段时,不能唯一地标识布局

我正在尝试执行以下操作: 在活动中, 将容器替换为一个片段(TestFragment) 这个片段的布局包含一个被另一个片段(TestSubFragment) 替换的容器, 单击TestSubFragment使活动在根容器上添加一个新的TestFragment TestActivity.kt class TestActivity : AppCompatActivity(), TestSubFragment.OnFragmentInteractionListener { override fun onFragmentInteraction(id: Int) { supportFragmentManager.beginTransaction().add(R.id.container, TestFragment.newInstance(id)).addToBackStack(null).commit() } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_test) supportFragmentManager.beginTransaction().replace(R.id.container, TestFragment.newInstance(1)).addToBackStack(null).commit() } } TestFragment.kt class TestFragment : Fragment() { private var id: Int? = null override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { val […]

与Java SAM没有2.12 M2标志的Scala互操作

有没有使用Java @FunctionalInterface / SAM / lambdaexpression式的Java-8 API编写Scala代码的公认技巧? 虽然Java lambdaexpression式inter-op在M2 http://www.scala-lang.org/news/2.12.0-M2中的一个标志下是可用的,但我更希望类/ AnyVal解决方案可能与scala一起工作functionX特点。 不幸的是,scala.FunctionX扩展AnyRef而不是Any,所以不能使用/混合这些特性到隐式的AnyVal类实现中。 补充:我不完全确定,即使scala.FunctionX是全球特征(从任何延伸)我如何实现我的目标。 我的用例是这样的: 在我的一个项目中,我选择了像Java Stream接口和类一样提供一个带有FunctionalInterfaces的Java-8 API,以便迎合尽可能广泛的基于JVM的客户端语言,例如Closure,Scala和Kotlin。 对于使用我的Java-8 API的每种客户端语言,如果在访问Java-8 API时,我将编写适当的绑定(如果需要的话)以使用特定于语言的习惯用法。 顺便说一句。 我也会对在Kotlin-Java互操作环境中提出的这个问题的任何评论感兴趣。