DaggerAppComponent未创建

随着匕首2.10我曾经能够通过做创建应用程序组件 sAppComponent = DaggerAppComponent.builder() .appModule(new AppModule(this)) .sessionModule(new SessionModule()) .netModule(new NetModule()) .dataModule(new DataModule()) .build(); 我已经使用AndroidInjector的活动,一切都很好。 现在我切换到2.11,我无法find创建应用程序组件的方式。 在谷歌教程中,我看到: DaggerYourApplicationComponent.create() .inject(this); 被添加到应用程序的onCreate中。 在我的情况DaggerYourApplicationComponent = DaggerAppComponent 。 问题是DaggerAppComponent类不再被创建。 我有: public class App extends android.support.multidex.MultiDexApplication implements HasActivityInjector { @Inject DispatchingAndroidInjector mDispatchingActivityInjector; @Override public void onCreate() { super.onCreate(); sAppComponent = DaggerAppComponent.create().inject(this); //here the error 和: @Singleton @Component(modules = { AppModule.class, MainActivityModule.class, […]

Firebase @PropertyName不起作用

故事 我在我的应用程序中使用Firebase实时数据库。 我有一个这样的模型。 class Item { int mItemName; // Simplified for brevity } 现在,这将该字段作为itemName存储在我的实时数据库中。 但是我不想使用这个命名约定。 我想命名模式是这个, item_name 。 我做了什么 我在这个字段上面使用@PropertyName(“item_name”), class Item { @PropertyName(“item_name”) int mItemName; // Simplified for brevity } 问题 Firebase似乎完全忽略了注释。 我无法改变序列化和反序列化的属性名称。 任何帮助将不胜感激。 编辑 这里是关注的完整模型类, public class FileModel { @PropertyName(“file_id”) String mFileId; @PropertyName(“file_name”) String mOriginalFileName; @PropertyName(“file_path”) String mFilePath; @PropertyName(“file_type”) String mFileType; @PropertyName(“last_modified”) Long […]

如何使用流过滤并将2D IntArray映射到Set

我有一个二维的IntArray代表一个游戏板,其中-1代表一个空格,一些值大于或等于0意味着该单元属于某个玩家。 像下面的东西(-1表示点(。)) . . . . . 1 0 . . 2 0 . 1 3 3 4 3 . . 0 我想要得到一个已经被任何玩家占用的单元格的位置。 像这样的东西: [Cell{1,0}, Cell{1,1}, …, Cell{3,4}] 我知道第一种方法是迭代2D数组: val set = HashSet(); for(row in 0 until HEIGHT){ for (col in 0 until WIDTH){ if(board[row][col] >= 0) set.add(Cell(row, col)) } } 但是…如果我使用流,它会更有效吗? 是否可以用更少的代码和更有效的方式来实现? IntStream.range(0, HEIGHT) […]

如何将一个函数应用于列表的列表

我知道flatMap操作,但不完全明白它是如何工作的。 我有一个class级: class Days() { List dates; } 然后我有这些对象的列表 List month 我想对这个对象中的每一个日期做一些事情(例如把它们转换成一个字符串),然后找回所有这些字符串的单个列表。 如何做到这一点?

kotlin Activity不能被扩展,这个types是final的,所以不能被inheritance

我已经创建了一个kotlin Activity,但是我不能够扩展这个活动,我得到的消息是“ 这个types是最终的,所以它不能被inheritance ”。 如何从最终删除一个kotlin活动,所以可以扩展。

在JSON数据类中带有可选字段的types安全

我正在Kotlin中构建一个REST-API,并且正在尝试以我可以使用它们来访问API的方式编写我的数据类。 我打算建立一个通用的“数据库”,它将在服务器和使用API​​的客户端之间共享。 这到目前为止效果很好,但现在我需要在JSON响应中为可选字段建模。 例如:我有一个User对象(可以通过/user/{id}端点以典型的REST方式访问)。 现在,你并不总是需要例如用户的“关于我”文本,所以默认情况下它不包括在响应中。 但是,如果您指定”aboutme”字段( /user/{id}?fields=aboutme ),它将包含在响应中。 我可以建模数据类如下: data class User(id: UUID, name: String, aboutMe: String?) 但是现在我每次访问它时都必须对域进行空检查,即使它显然不为空。 我想为API创建一个types安全的前端,所以当我这样做时,例如myCoolApi.getUser({id}, User::aboutMe)我将得到一个User对象,其中aboutMe不可为空。 我想可以用generics来实现这一点,但是如果涉及多个可选字段,那将会变得非常冗长。 我有兴趣的任何建议。 根据要求,我会添加更多的代码来显示我所追求的。 class MyApi { fun getUser(id: UUID, vararg fields: KProperty1): User } // usage: val myApi: MyApi = TODO() val userId: UUID = TODO() val aboutMe: String = myApi.getUser(userId).aboutMe // does not compile, […]

如何在Kotlin Android中为数据类创建空构造函数

我有一个数据类10+参数,我想用一个空的构造函数初始化数据类,并使用setter只为少数参数设置值,并传递对象到服务器。 data class Activity( var updated_on: String, var tags: List, var description: String, var user_id: List, var status_id: Int, var title: String, var created_at: String, var data: HashMap, var id: Int, var counts: LinkedTreeMap, ) 用法: 这样的事情会很容易 val activity = Activity(); activity.title = “New Computer” sendToServer(activity) 但它需要在创建构造函数时传递所有参数。 我怎样才能像上面那样简化? val activity = Activity(null,null,null,null,null,”New Computer”,null,null,null,null); sendToServer(activity)

如何在Kotlin中读取环境variables?

我想从我的Kotlin应用程序中的环境variables中获得一定的值,但在核心库文档中找不到有关读取环境variables的任何内容。 我希望它是在kotlin.system下,但真的没那么多。

如何链接到KDoc中的Java类的静态成员?

在KDoc中,你可以这样做: /** * [Integer.equals] is an instance method. */ 但是你不能这样做: /** * [Integer.signum] is a static method. */ 通过“你不能”我的意思是说,IntelliJ IDEA不会引导你到一个静态成员的声明,如果你使用导航→宣言行动。 导航到静态字段也不起作用。 有没有办法链接到KDoc的Java类的静态成员? 这可能只是IDEA中的一个错误?

Kotlin未解决的引用linkedListOf

在这篇文章之后http://obviam.net/index.php/libgdx-and-kotlin/我创建了一个项目,并使用Atom编辑。 它编译,并运行在Android设备上。 我想转换到AndroidStudio更好的工具。 我正在使用AndroidStudio 1.5.1,它说我有最新版本的kotlin插件。 我使用LibGDX安装程序创建了一个新项目,导入AdroidStudio,将主类转换为kotlin,一切正常。 然后我粘贴了我现有的代码,当我建立时,这一行: val bullets:MutableList = linkedListOf() 得到这个错误: 错误:(19,42)未解决的引用:linkedListOf 当我选择工具 – > Kotlin – >配置它说’所有与Kotlin文件模块配置’。 我也尝试将现有的项目导入AndroidStudio,结果是相同的问题。