小编Nik*_*laB的帖子

带有通用参数的Kotlin抽象类和使用类型参数的方法

我正在尝试使用泛型参数创建一个抽象类,它将具有应该调用方法而不必指定类型参数的子类.到目前为止我有这个:

abstract class AbstractClass<T : Any> @Autowired constructor(protected val delegate: MyService) {
    inline fun <T: Any> myMethod(param: Any): T? {
        return delegate.myMethod(param).`as`(T::class.java)
    }
}
Run Code Online (Sandbox Code Playgroud)

并实施:

class TesterWork @Autowired constructor(delegate: MyService) : AbstractClass<Tester>(delegate) {
}
Run Code Online (Sandbox Code Playgroud)

现在在调用时myMethod我必须指定类型参数:

testerWork.myMethod<Tester>("test")
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以自动推断出类型参数?我可以以某种方式重写myMethod吗?请注意,我需要T::class.java在方法内部.

generics abstract-class type-inference kotlin

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

Android将drawable加载到ImageView中占用了大量内存

我遇到了问题.

我动态地将9加载drawables到9 imageViews.(drawables各自不同的时间)的可绘制的ID被存储在该对象类,所以当我加载此抽拉我设置ImageRessourceimageView通过使用imageView.setImageRessource(myObject.getRessourceId()); 一切正常,但9绘项目被装载时,我看到在Android内存监视器,所述分配内存达到80MB,我认为这不正常......(是吗?)

我尝试了不同的东西来解决它:

  • 用Picasso库加载drawable.
  • 用于BitmapFactory.decodeResssource在imageView上创建一个Bitmap,然后设置setImageBitmap.

使用我尝试的所有技术,它需要80MB的分配内存.

我尝试使用不同的图像分辨率,所以在ldpi(~30Ko /图像)和xhdpi(~87Ko /图像),但它不会改变任何加载的每个图像,它需要大约5MB的分配内存...

所以我的问题是:如何减少为图像分配的内存?

提前谢谢,如果有必要,我可以提供部分代码.

问候

PS:ImageViewsonCreate()方法中动态创建.

memory performance android drawable

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