我可以动态调用实例的方法,但是我无法调用静态方法(以在不需要实例时节省资源)。
主要思想是为不同级别的课程编码3-4类,然后使用所选的课程(根据用户的选择)。
data class Travel(var expectedArrivalDate: Date? = null);
lateinit var keyValue: Map.Entry<String, List<Travel>>;
val today = Date.from(Instant.now())
val tomorrow = Date.from(Instant.now().plusSeconds(86400))
val todayCount = keyValue.value.mapNotNull(Travel::expectedArrivalDate).count {
it.after(today) && it.before(tomorrow)
}
非常感谢你!
答案 0 :(得分:0)
您始终可以引入一个界面:
abstract class Course {
String get level;
void sayHello();
}
实现该界面:
class Beginner implements Course {
@override
String get level => 'beginner';
@override
void sayHello() {
print('Hello from $level');
}
}
您可以像这样存储实例:final courses = <Course>[Beginner(), Intermediate()];
这种方法有很多问题。
(在不需要实例时节省资源)
不用担心。好像过早的优化。如果您遇到围绕类实例化的性能问题,则可以随时尝试对其进行优化。
您将无法按级别查找所需的类实例。因此,我将按级别创建查找映射:
final courseByLevel = <String, Course>{
'beginner': Beginner(),
'intermediate': Intermediate()
};
通过这种方式,您可以获得相同的类实例,并且可以通过courseByLevel['beginner']
表达式轻松获取它。