2010-06-02 12 views
11

Ben çifte değer döndürmek bir Java Ek Açıklama vardır:Scala'da sabit ifade olarak negatif bir değere sahip olabilir miyim?

@Retention(RetentionPolicy.RUNTIME) 
@Target(ElementType.FIELD) 
public @interface DoubleValue { 
    double value(); 
} 

i scala sınıfta bir alana ek açıklama eklemek denemek ve değer burada gibi negativ olduğunda:

class Test { 
    @DoubleValue(-0.05) 
    var a = _ 
} 

"Derleme argümanı sabit olmalı; bulundu: 0.05.unary_-" ile bir derleyici hatası alıyorum. Sayısal bir editöre ihtiyaç duyduğumu ve Scala Dili Spesifikasyonuna baktığımı anladım ve öyle görünüyor ki, - işareti sadece üs için kullanılıyor, ama mantis için değil. Birisi, ek açıklamaları kullanarak çalışma zamanı bilgileri olarak nasıl negatif bir değere sahip olabileceğimi biliyor mu?

sayesinde Klinke

+2

kullanın. :) –

+0

Scala 2.7 kullanıyor musunuz? 2.8'de ek açıklama kullanımı çok gelişmiştir. –

+0

* Güncelleme: * Görünüşe göre bu "özellik" 2,8'de kalıyor. Sadece test ettim. –

cevap

7

bir hata olduğunu görülmektedir.

hata düzeltildi edilene kadar, sürekli üzerinde aritmetik sabit olduğu gerçeğini yararlanabilir ve yöntemleri gibi operatörlerin karanlık yüzü bulmuş olabilir gibi görünüyor

@DoubleValue(0-0.05) 
+0

Teşekkürler, bu çok işe yarıyor ve daha iyi bir çözümdür. – Klinke