NativeScript / NativeScript/android

Improve support for Java varargs methods

Offen
#469 5 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

feature severity: low
Vorherrschende Sprache
C++
Sterne
563
Forks
144
Ø Merge
10 Std. 46 Min.
Gemergte PRs (30 T.)
14

Beschreibung

Java supports varargs methods. For example, [Class.getMethod](https://developer.android.com/reference/java/lang/Class.html#getMethod%28java.lang.String, java.lang.Class<?>...%29)

Method getMethod (String name, Class...<?> parameterTypes)

This is syntax sugar for the actual method signature which is

Method getMethod (String name, Class<?>[] parameterTypes)

Currently, NativeScript for Android does not support calling such method with implicit parameter

var klass = java.lang.Object.class;

// option 1) not supported
var method = klass.getMethod("hasCode");

// option 2) supported
var method = klass.getMethod("hasCode", null);

We can provide another implementation for the current method resolution algorithm so it tries to find a method with one additional parameter (array) as a fallback and if this fail then the method resolution fails as expected.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit dem aktuellen Algorithmus zur Methodenauflösung in der NativeScript Android Runtime und verfolge, wie JavaScript-Aufrufe passenden Java-Methoden zugeordnet werden. Überprüfe das Verhalten anhand der Beispiele für implizite und explizite varargs im Issue. Als abgeschlossen gilt dies, wenn ein weggelassenes varargs-Argument über den Fallback auf den Array-Parameter aufgelöst wird, während nicht aufgelöste Methoden weiterhin normal fehlschlagen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
cpp, java, javascript
Bereich
mobile-dev
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.