Tag: Java

Kotlin代码如何在Android应用程序中执行,与Java有什么不同?

我正在学习Kotlin,并希望了解编译后的代码是如何执行的,这与Java代码执行Android有什么不同。 我也想知道为什么我们编写MainActivity::class.java ( class.java )来引用类文件。 谢谢!

Java类名中的Kotlin中的静态常量

我通常在Java中有这个: package some.package; public class Clz { public static final String ACTION_DIVE = Clz.class.getName() + “.action.DIVE”; } 可以从Clz.ACTION_DIVE以外的类访问,值为”some.package.Clz.action.DIVE” 。 我怎么能在Kotlin class Clz做同样的Clz以便可以从外部的Java类以相同的方式访问它? 我尝试了以下,但它不编译,因为它不是一个常量: package some.package object Clz { const val ACTION_DIVE = Clz.javaClass.name + “.action.DIVE” }

Kotlin访问Java类

为什么在Kotlin中,你需要访问它们使用的对象的Java类 MyActivity::class.java 我被告知与Kotlin与JS的互操作性…有什么想法?

Kotlin:unit testing期间@JvmStatic方法NoClassDefFoundError / ClassNotFoundException

这是我试图从我的unit testing调用的类 package bj.discogsbrowser.artistreleases class ArtistResultFactory { companion object { @JvmStatic fun buildArtistResult(members: Int): ArtistResult { val artistResult = ArtistResult() artistResult.nameVariations = listOf(“ye”) artistResult.dataQuality = “really good quality, we have the best qualities” return artistResult } } } 这是测试的样子: @Test fun setArtistNoMembers_displaysNoMembers() { controller.setArtist(ArtistResultFactory.buildArtistResult(0)) … assertEquals(copyOfModels.size, 8) } Java中的相同测试(也失败了): @Test public void setArtistNoMembers_displaysNoMembers() { controller.setArtist(ArtistResultFactory.buildArtistResult(0)); […]

在Android Studio中将“java”目录重命名为“kotlin”

我的android项目是100%写在Kotlin,我想重新命名为kotlin java目录是一致的。 我补充说 sourceSets {main.java.srcDirs + =’src / main / kotlin’} 以gradle并重命名目录。 所有的编译和工作正常。 唯一的问题是,当我在项目选项卡中,在“Android”视图目录仍然名为“java”(如果我切换到项目视图的下拉列表中,我确实看到“kotlin”tho)。 我错过了什么?

在Android中设置本地化video查看uri

我有一个video的本地化版本,我想在VideoView播放,但我有一些问题搞清楚如何正确播放本地化的版本。 这个答案告诉我本地化一个raw资源,我应该把本地化资源放在raw-es 。 这个答案告诉我,要使用VideoView#setVideoUri我应该像这样创建一个uri: Uri.parse(“android.resource://${context.packageName}/${videoResId}”) (以上是Kotlin字符串插值。) 虽然我似乎无法find关于如何为本地化版本创建uri的任何信息。 创建的uri始终引用默认的原始资源。 我总是可以把它们放在不同名称的raw文件夹中,然后添加一些if检查,但是如果可能的话,我想这样做是正确的。

Cassandra 2.1插入性能取决于受影响的列吗?

环境:Cassandra 2.1,DataStax Driver 2.1.9,DSE 4.8单节点集群 我创建了一个表格: create table calc_data_test2( data_set_id uuid,svod_type text,section text,index_code text,value_type text,data_hash text,c1 text,c2 text,c3 text,c4 text,c5 text,c6 text,c7 text,c8 text,c9 text,c10 text,c11 text,c12 text,c13 text,c14 text,c15 text,c16 text,c17 text,c18 text,c19 text,c20 text,c21 text,c22 text,c23 text,c24 text,c25 text,c26 text,c27 text,c28 text,c29 text,c30 text,c31 text,c32 text,c33 text,c34 text,c35 text,c36 text,c37 text,c38 text,c39 text,c40 […]

在Java中将short转换为byte

我怎样才能将short (2字节)转换为Java中的字节数组,例如 short x = 233; byte[] ret = new byte[2]; … 它应该是这样的。 但不确定。 ((0xFF <> 0; 编辑: 你也可以使用: java.nio.ByteOrder.nativeOrder(); 发现是否本地位的大小。 另外,下面的代码是从java.io.Bits中得到的: 字节(数组/偏移量)为布尔值 字节数组到char 字节数组简写 字节数组为int 字节数组浮动 字节数组 字节数组加倍 而且反之亦然。

Android的 – 是否可以使用Comparator.comparing排序列表,而不是在API <24的自定义比较器?

我在我正在工作的应用程序中有一个RecyclerView,我可以填充各种项目和搜索/筛选/排序/依此类推。 目前正在分拣。 我有多个标准可以排序,可以从下拉菜单中选择。 在数据对象中排序的值包括字符串,整数和枚举,所有这些都很容易分类。 然而,尽管一些分类选项只需要一个标准,但是一些需要二级或三级标准(并且在一些非常罕见的情况下高达4个)。 为了有效地使用Collections.sort(List, Comparator) ,我需要编写相当多的自定义比较器,所以我希望有一些方法可以避免这种情况。 原来,Java 8有一个很好的解决方案: Comparator.comparing(…) ,它为您生成比较器,并可以通过Comparator.comparing().thenComparing().thenComparing()…无限地轻松扩展。 它也有List myList.sort() ,我不知道与Collections.sort(myList)相比的效率,但它感觉更清洁。 我看着它, 只是想我的运气! Android已经支持了很多Java 8function,现在已经有一段时间了! 不幸的是,Android Studio告诉我,出于某种原因, Comparator.comparing()以及List::sort只在API 24及更高版本上受支持。 这对我来说并不现实,因为我正在开发的应用程序“需要”的运行速度与API 15-16一样低。 但是,我发现这很奇怪,因为我试过的其他Java 8特性(lambdaexpression式类似于(o1, o2) -> (o1.toString().compareTo(o2.toString())和方法引用(如List::sort上面的List::sort )在我检查的范围内的所有API级别上都可以正常工作,只要您指定了针对Java 8的目标即可。而这毕竟是Java 8的事情,而不是Android的事情。 所以记住,有没有办法使Comparator.comparing()和List::sort工作在API 24之下? 我在Google搜索中没有发现任何东西,它们最终都只是指向Android的Java 8“文档”或比较器和列表的JavaDocs。 要么是Android的支持库中的东西(似乎不太可能)或像Retrolambda这样的第三方库/黑客?

Kotlin&Hibernate IllegalArgumentException:无法将字符串字段Job.name设置为Job

我试图坚持一个单一的对象与hibernate到Postgres数据库。 这个类看起来像这样: @Entity @Table(name = “jobs”) data class Job( @Id @GeneratedValue(strategy = GenerationType.IDENTITY) var id: Int? = 0, var name: String? = “” ) 我用下面的代码创建一个hibernate会话: fun createSessionFactory(targetClass: Class): SessionFactory? { val registryBuilder = StandardServiceRegistryBuilder() if (sessionFactory == null) { val configuration = hashMapOf( Environment.DRIVER to “org.postgresql.Driver”, Environment.URL to “jdbc:postgresql://localhost:5432/testdb”, Environment.DIALECT to “org.hibernate.dialect.PostgreSQL9Dialect”, Environment.USER to “user”, […]