Odbicie to zdolność programu do obserwowania i / lub modyfikowania jego struktury i / lub zachowania w czasie wykonywania. Refleksja zależy od obsługiwanego języka programowania - należy oznaczyć język programowania używany podczas używania tego znacznika.
Mam źle zaprojektowaną klasę w JARfirmie zewnętrznej i muszę uzyskać dostęp do jednego z jej prywatnych pól. Na przykład, dlaczego powinienem wybrać pole prywatne, czy jest to konieczne? class IWasDesignedPoorly { private Hashtable stuffIWant; } IWasDesignedPoorly obj = ...; Jak mogę użyć odbicia, aby uzyskać wartość stuffIWant?
Mam zajęcia z private static finalpolem, które niestety muszę zmienić w czasie wykonywania. Za pomocą odbicia otrzymuję ten błąd: java.lang.IllegalAccessException: Can not set static final boolean field Czy jest jakiś sposób na zmianę wartości? Field hack = WarpTransform2D.class.getDeclaredField("USE_HACK"); hack.setAccessible(true); hack.set(null, true);
Które z poniższych jest lepsze? a instanceof B lub B.class.isAssignableFrom(a.getClass()) Jedyną różnicą, o której wiem, jest to, że gdy „a” jest zerowe, pierwsze zwraca false, a drugie zgłasza wyjątek. Poza tym, czy zawsze dają taki sam wynik?
W obecnej formie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi poparte będą faktami, referencjami lub wiedzą fachową, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz, że to pytanie można poprawić i ewentualnie ponownie otworzyć, odwiedź centrum pomocy w …
Mam moduł Pythona zainstalowany w moim systemie i chciałbym móc zobaczyć, jakie funkcje / klasy / metody są w nim dostępne. Chcę wywołać funkcję doc na każdym z nich. W Ruby mogę zrobić coś takiego jak ClassName.methods, aby uzyskać listę wszystkich metod dostępnych w tej klasie. Czy w Pythonie jest …
W specyfikacji języka Go wspomina krótki przegląd tagów: Po deklaracji pola może następować opcjonalny znacznik literału łańcucha, który staje się atrybutem dla wszystkich pól w odpowiedniej deklaracji pola. Tagi są widoczne przez interfejs odbicia, ale w przeciwnym razie są ignorowane. // A struct corresponding to the TimeStamp protocol buffer. // …
To dość dziwne pytanie. Moim celem jest zrozumienie decyzji dotyczącej projektu języka i identyfikacja możliwości refleksji w C ++. Dlaczego komitet językowy C ++ nie zdecydował się na wdrożenie refleksji w języku? Czy odbicie jest zbyt trudne w języku, który nie działa na maszynie wirtualnej (takiej jak Java)? Gdyby wprowadzić …
Aby sprawdzić, czy typ jest podklasą innego typu w języku C #, łatwo: typeof (SubClass).IsSubclassOf(typeof (BaseClass)); // returns true Jednak to się nie powiedzie: typeof (BaseClass).IsSubclassOf(typeof (BaseClass)); // returns false Czy istnieje sposób sprawdzenia, czy typ jest podklasą OR samej klasy bazowej, bez użycia ORoperatora lub metody rozszerzenia?
W mojej klasie jest grupa prywatnych metod i muszę wywoływać jedną dynamicznie na podstawie wartości wejściowej. Zarówno kod wywołujący, jak i metody docelowe znajdują się w tej samej instancji. Kod wygląda następująco: MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType); dynMethod.Invoke(this, new object[] { methodParams }); W takim przypadku GetMethod()nie zwróci metod …
Czy istnieje sposób w języku C #, w którym można użyć odbicia do ustawienia właściwości obiektu? Dawny: MyObject obj = new MyObject(); obj.Name = "Value"; Chcę ustawić obj.Namez refleksją. Coś jak: Reflection.SetProperty(obj, "Name") = "Value"; Czy jest na to sposób?
Próbowałem zrozumieć i przeczytać, co może to spowodować, ale po prostu nie mogę tego zrozumieć: Mam to gdzieś w moim kodzie: try{ .. m.invoke(testObject); .. } catch(AssertionError e){ ... } catch(Exception e){ .. } Chodzi o to, że gdy próbuje wywołać jakąś metodę, rzuca InvocationTargetExceptionzamiast jakiegoś innego oczekiwanego wyjątku (konkretnie …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.