Czy możliwe jest skonstruowanie sparametryzowanej klasy w Matlab? Na przykład w Javie mógłbym powiedzieć: ArrayList<String> myList = new ArrayList<String>()
. Próbowałem myList = java.util.ArrayList<String>()
, ale to po prostu daje błąd mówiąc "nieoczekiwany nawias lub nawiasu". Naprawdę staram się korzystać z własnych sparametryzowanych klas, ale jeśli mogę uzyskać składnię do tego, to powinno wystarczyć.Korzystanie z ogólnych klas Java w Matlab
Odpowiedz
Nie można instancji sparametryzowanego klasy Java w Matlab. Dzieje się tak, ponieważ Matlab jest językiem interpretowanym. Tak więc w twoim przykładzie, kiedy próbujesz, kod ten jest natychmiast interpretowany i uruchamiany przez Matlab (i skompilowany kod Java). Ale ponieważ Java ma Type Erasure wszystkie informacje o typie dla myList są natychmiast tracone. Oznacza to, że w kontekście parametrów typu składni Matlab nie ma sensu - są więc syntaktycznie nieważne.
Nie jestem specjalistą w Matlabie, ale rozumiem coś w języku Java.
- Leki generyczne są obsługiwane ponieważ Java 5
- Leki generyczne są kompilacji funkcja czasu. Są one również nazywane "wymazaniami".
To oznacza, że
- Sprawdź, które Java jest zainstalowana na komputerze i wykorzystywane przez Matlab. Prawdopodobnie jest skonfigurowany do używania java 1.4?
- Czy możesz napisać kod używając innego IDE (nie matlab), skompilować go i użyć w Matlab? Prawdopodobnie to rozwiąże twój problem.
Poniższy link prawdopodobnie mógłby pomóc: http://www.mathworks.com/support/solutions/en/data/1-1812J/
Twoje podejście, o którym mowa w punkcie drugim, działa. – zellus
Kurt ma rację, jednak rozwiązaniem będzie zdefiniowanie własnej klasy Java, która nie zostanie sparametryzowana. public class MyList extends ArrayList<String> { }
. Następnie w Matlab można napisać myList = MyList()
, a otrzymasz prawie wszystkie z tych samych metod podpisów jak ArrayList<String>
.
- 1. Java - zachowanie klasy członków klas ogólnych
- 2. Konwencja nazw plików klas ogólnych
- 3. Korzystanie z klas częściowych
- 4. Korzystanie z najbardziej ogólnych typów funkcji typeclass
- 5. Zrozumienie ogólnych metod java
- 6. Korzystanie z typów ogólnych w XAML x: Wpisz znacznik
- 7. Java 8 ogólnych kolekcji z opcjami
- 8. C++ Korzystanie z klas z doładowaniem :: lexical_cast
- 9. Korzystanie z klas Protobuf w porównaniu z ramą/warstwą odwzorowania w języku Java
- 10. Nie może być tak specyficzny w typach pól ogólnych Java, jak w przypadku ogólnych typów metod?
- 11. Korzystanie z Tesseract z java
- 12. Ogólne klasy w metodach ogólnych
- 13. Czy NUnit's Is.EqualTo nie działa niezawodnie dla klas wywodzących się z klas ogólnych?
- 14. Korzystanie XmlSerializer serializacji klas pochodnych
- 15. Korzystanie z "||" w instrukcjach przełączania w java
- 16. Funkcje macierzy Matlab w java
- 17. Konwencja nazw klas w java
- 18. Dziwne zachowanie podczas deserializacji klas zagnieżdżonych, ogólnych za pomocą GSON
- 19. Korzystanie z Google Reflections w celu uzyskania listy wszystkich klas - ale wydaje się, że brakuje java. *
- 20. Korzystanie klasa Scala zdefiniowane w obiekcie opakowania z Java
- 21. Dziedziczenie z interfejsów ogólnych
- 22. Korzystanie z pomocników formularzy Railsów z serią niestandardowych klas
- 23. odczytywanie danych z Matlab na Java
- 24. Vim Syntastic Java Nieświadome aktualnych klas projektów
- 25. Java - Dynamiczne ładowanie klas
- 26. Używanie Java wyliczenia z różnych klas?
- 27. Tworzenie klas java z pliku xsd - JAXB
- 28. Automatyczne serializowanie/deserializacja ogólnych klas przypadków do/z JSON w Play2.2 Scala
- 29. Ukrywanie klas innych niż java z findbugs
- 30. Java Reflection getDeclaredMethod() z typami klas
OK, bałem się, że tak było, ale chciałem się upewnić. – Sam
Więc jeśli skonstruuję ArrayList w programie Matlab, czy możliwe jest dodanie do niego obiektu Matlaba? (Za każdym razem, gdy próbuję dodać obiekt, otrzymuję komunikat "Brak metody" dodaj "z pasującym podpisem dla klasy " java.util.ArrayList'. ") – dinosaur