Tôi phát triển các ứng dụng Android và thường sử dụng chú thích làm kiểm tra tham số thời gian biên dịch, chủ yếu là android support annotations.Làm cách nào để sử dụng chú thích Hỗ trợ Android typedef trong kotlin?
Ví dụ trong mã java:
public class Test
{
@IntDef({Speed.SLOW,Speed.NORMAL,Speed.FAST})
public @interface Speed
{
public static final int SLOW = 0;
public static final int NORMAL = 1;
public static final int FAST = 2;
}
@Speed
private int speed;
public void setSpeed(@Speed int speed)
{
this.speed = speed;
}
}
Tôi không muốn sử dụng enums vì các vấn đề hiệu suất của họ trong Android. Bộ chuyển đổi tự động thành kotlin chỉ tạo mã không hợp lệ. Làm cách nào để sử dụng chú thích @IntDef
trong kotlin?
Bạn có thể sử dụng enums tự do, họ không 'chậm' trong bất kỳ ý nghĩa (http://stackoverflow.com/questions/5143256/why-was-avoid-enums-where -you-only-need-ints-remove-from-androids-performanc) –
@AlexanderUdalov, 1) https://www.youtube.com/watch?v=Hzs6OBcvNQE 2) enums không thể chuyển nhượng theo mặc định cũng cho biết thêm bản mẫu mã khi nó cần để chuyển đến tham số ý định 3) khi giá trị nhận được từ mạng cách chuyển đổi nó thành enum là tối nghĩa và loại bỏ an toàn enum. – curioushikhov
@curioushikhov ProGuard "đơn giản hóa các loại enum thành hằng số nguyên, bất cứ khi nào có thể" ([Tối ưu hóa] (http://proguard.sourceforge.net/manual/optimizations.html)). – mfulton26