当我在字段中使用@Json时,序列化不会正确发生,但它在更改为@field:Json后开始工作。
我在阅读了一些错误线程后经历了这个变化,我认为这是 kotlin 特有的。我想知道 @field:Json 带来什么区别,它真的特定于 kotlin 吗?
我们所做的主要操作是插入,删除和搜索任何类型的数据结构,这也可以使用数据库查询来完成,那么数据结构的用途是什么?
这使数据结构与数据库不同?
我刚开始阅读有关干净架构的文章,但对用例实现的定义感到困惑。
考虑一个具有一组函数的控制器类,这些函数在执行一些逻辑后接受 T 并返回 R
interface IController {
fun usecase1(param:T) : R
fun usecase2(param:T) : R
}
Run Code Online (Sandbox Code Playgroud)
现在我可以使用 IController 实例执行用例。
另一种方法是将每个用例定义为一个类并注入需要该功能的其他对象。
class UseCase1 {
fun execute(param:T):R {}
}
class UseCase2 {
fun execute(param:T):R {}
}
Run Code Online (Sandbox Code Playgroud)
将用例作为单独的单元与将其作为某个类的功能之间有什么优点/缺点?
IMO,单独的单元会增加构造和注入开销,而其他方法则存在“继承问题而不是组合”。哪条路是正确的?
我创建了一个包含 100 万个 MyItem 对象的 ArrayList,消耗的内存为 106mb(从任务管理器检查)但是通过 addAll() 方法将相同的列表添加到另外两个列表后,需要 259mb。我的问题是我只添加了对 list 的引用,在 100 万个之后没有创建新对象。为什么即使使用 LinkedList 内存消耗也会增加(因为它不需要连续的内存块,因此不会进行重新分配)?
如何高效地实现这一目标?数据在我的程序中经过各种列表,消耗了超过 1GB 的内存。上面介绍了类似的场景。
public class MyItem{
private String s;
private int id;
private String search;
public MyItem(String s, int id) {
this.s = s;
this.id = id;
}
public String getS() {
return s;
}
public int getId() {
return id;
}
public String getSearchParameter() {
return search;
}
public void setSearchParameter(String s) {
search = s;
}
}
public class Main{
public static …Run Code Online (Sandbox Code Playgroud) arraylist ×1
controller ×1
database ×1
java ×1
json ×1
kotlin ×1
linked-list ×1
moshi ×1
reference ×1