2010-12-16 29 views
6

Matlab'a parametreli bir sınıf oluşturmak mümkün mü? Örneğin Java'da ArrayList<String> myList = new ArrayList<String>() diyebilirim. myList = java.util.ArrayList<String>()'u denedim, ancak "beklenmedik parantez veya parantez" yazan bir hata veriyor. Gerçekten kendi parametreli sınıflarımı kullanmak istiyorum, ancak bunun için sözdizimini alabilirsem, yeterli olmalı.Matlab'da Java genel sınıflarını kullanma

cevap

5

Sen Matlab parametrized Java sınıf örneğini olamaz. Bunun nedeni Matlab'ın yorumlanmış bir dil olmasıdır. Yani, örnekte, ne zaman

myList = java.util.ArrayList<String>() 

Bu kod hemen yorumlanır ve çalıştırmak Matlab tarafından (ve Java kodu derlenmiş) olduğunu deneyin. Fakat Java'nın Type Erasure olduğu için myList için tüm tür bilgileri hemen kaybolur. Bu Matlab sözdizimi tipi parametreleri bağlamında anlam ifade etmemektedir - bu nedenle sözdizimsel olarak geçersizdir.

+0

Tamam, bu durumdan korkuyordum, ama emin olmak istedim. – Sam

+0

Matlabda bir ArrayList oluşturursam, ona bir matlab nesnesi eklemek mümkün mü? (Bir nesne eklemeyi denediğimde, " sınıfı" java.util.ArrayList'. class "için eşleşen imzaya sahip" Yöntem yok "ifadesini alıyorum.) – dinosaur

1

Matlab'da uzman değilim ama java'da bir şey anlıyorum. java 5

  • Jenerik derleme zamanı özelliği olduğundan bu

    1. Jenerik desteklenmektedir. Ayrıca "silme" denir.

    Bunun anlamı java Sisteminizde yüklü ve matlab tarafından kullanılan

    1. kontrol edin. Muhtemelen java 1.4 kullanmak için yapılandırılmış mı?
    2. Başka IDE (not matlab) kullanarak kod yazabilir, bunları derleyebilir ve Matlab'da kullanabilir misiniz? Muhtemelen probleminizi çözecektir.

    aşağıdaki bağlantı büyük ihtimalle size yardımcı olabilecek: http://www.mathworks.com/support/solutions/en/data/1-1812J/

  • +0

    İki numaralı noktada bahsedilen yaklaşımınız çalışıyor. – zellus

    5

    Kurt haklıdır, ancak, bir parametrelendirilmemiş kendi java sınıfınızı tanımlamak bir geçici çözüm olacaktır. public class MyList extends ArrayList<String> { }. Daha sonra matlab içinde myList = MyList() yazabilirsiniz ve ArrayList<String> ile hemen hemen aynı yöntem imzalarını elde edersiniz.

    İlgili konular