小编Bam*_*Bam的帖子

Hilt 测试 - 替换单独的 Android 多模块应用程序中的内部 Hilt 模块

我有一个 Android 应用程序,其中代码库分为 2 个不同的模块:AppDomain

目标:我尝试在创建应用程序测试时使用 Hilt 提供的测试功能来替换域内部依赖项。

Domain中,我有一个带有内部实现的内部接口,如下所示:

internal interface Database {
    fun add(value: String)
}

internal class DatabaseImpl @Inject constructor() : Database {
    override fun add(value: String) { ... }
}
Run Code Online (Sandbox Code Playgroud)

以上保证了数据库只能在Domain内部使用,不能从其他地方访问。

Domain中,我有另一个接口(不是内部的),用于App,具有内部实现,如下所示:

interface LoginService {
    fun userLogin(username: String, password: String)
}

internal class LoginServiceImpl @Inject constructor(database: Database) {
    override fun userLogin(username: String, password: String) {
        // Does something with the Database in …
Run Code Online (Sandbox Code Playgroud)

testing android kotlin dagger-hilt

8
推荐指数
1
解决办法
1515
查看次数

数组 (UUID[ ]) 会破坏 1NF 吗?

我的问题是,在包含数组之前位于 NF 的表中,包含包含 UUID 数组的字段是否会破坏Normal Form ?

原表:

CREATE TABLE Floor
(
    "Floor-ID" uuid NOT NULL,
    "Floor-Floor" smallint NOT NULL,
    "Floor-Desc" varchar(300),
    CONSTRAINT "Floor-PK" PRIMARY KEY ("Floor-ID")
);
Run Code Online (Sandbox Code Playgroud)

新表,包括 UUID 数组:

CREATE TABLE Floor
(
    "Floor-ID" uuid NOT NULL,
    "Floor-Floor" smallint NOT NULL,
    "Floor-Desc" varchar(300),
    "Floor-Room-IDs" uuid[] NOT NULL,
    CONSTRAINT "Floor-PK" PRIMARY KEY ("Floor-ID")
);
Run Code Online (Sandbox Code Playgroud)


包含 uuid[] 是否会破坏正常形式?
(理论上,相同的 UUID 可以存在于多行的多个 UUID 数组中。)

sql database arrays postgresql

7
推荐指数
1
解决办法
1340
查看次数

Android Parcelable投射错误

所以我对这个问题感到很疯狂.

重点如下:
我有一个Object实现Parcelable.这个对象Activities很容易在没有问题的情况下传递.
但是如果我尝试从Bundlein中读取它onRestoreInstanceState,在存储之后onSaveInstanceState,我得到一个关于转换为无效类的异常.下面是存储和读取的代码,以及Exception抛出的代码.

onSaveInstanceState

Log.d(TAG, "Address is null:" + (userAddress == null));
if( userAddress != null )
{
    Log.d(TAG, "Address class:" + userAddress.getClass());
}

saveInto.putParcelable("UserAddress", userAddress); <-- Storing here
Run Code Online (Sandbox Code Playgroud)


onRestoreInstanceState

Log.d(TAG, "Contains: " + retrieveFrom.keySet().contains("UserAddress"));

userAddress = retrieveFrom.getParcelable("UserAddress"); <-- Reading here

Log.e(TAG, "Loaded-Address was null:" + (userAddress == null));
Run Code Online (Sandbox Code Playgroud)


Exception

W/Bundle? Key UserAddress expected Parcelable but value was a java.lang.String.  The default value <null> was …
Run Code Online (Sandbox Code Playgroud)

java android parcelable

1
推荐指数
1
解决办法
5503
查看次数

标签 统计

android ×2

arrays ×1

dagger-hilt ×1

database ×1

java ×1

kotlin ×1

parcelable ×1

postgresql ×1

sql ×1

testing ×1