Second Opinion
Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale. Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit. www.neurohope.ro |
Intrebare despre java 8
Last Updated: Sep 21 2018 08:24, Started by
piramyd
, Jun 19 2018 17:04
·
0
#1
Posted 19 June 2018 - 17:04
Salut,
Intrebarea mea e simpla. De ce nu pot sa inlocuiesc IntToLongFunction converter = value -> value;cu IntToLongFunction converter2 = Function.identity();sau macar cu IntToLongFunction converter3 = Function::identity;? Merci! |
#2
Posted 19 June 2018 - 18:24
Intrebarea mea e si mai simpla: de ce te-ai astepta sa poti inlocui?
|
#3
Posted 19 June 2018 - 20:43
prototipul functiei identity
static <T> Function<T,T> identity() IntToLongFunction converter = value -> value; Function<Integer,Long> pyramid = value -> Long.valueOf(value.longValue()); Edited by WinstonMontana, 19 June 2018 - 20:54. |
#4
Posted 21 June 2018 - 14:47
Dupa ce am incercat cateva lucruri, am aflat si raspunsul.
Autoboxing/autounboxing functioneaza doar cu tipuri primare daca se face conversie de la un tip de data mai mic la unul mai mare. Dar nu functioneaza si la Numbers. Adica: import java.util.function.IntToLongFunction; public class Main { static long functioneaza(int a){ return a; } static Long functioneaza2(Integer a){ return a.longValue(); } static long functioneaza3(long a){ return a; } //static Long nuFunctioneaza(Integer a){ //return a; //} static Long nuFunctioneaza2(Long a){ return a; } public static void main(String[] d){ int a = 100; long b; IntToLongFunction converter1 = Main::functioneaza; IntToLongFunction converter2 = Main::functioneaza2; //IntToLongFunction converter3 = Main::nuFunctioneaza; //de asta ma asteptam sa functioneze: IntToLongFunction converter4 = Main::functioneaza3; //dar nu functioneaza //IntToLongFunction converter5 = Main::nuFunctioneaza2; b = converter1.applyAsLong(a); b = converter2.applyAsLong(a); b = converter4.applyAsLong(a); } } Edited by piramyd, 21 June 2018 - 14:57. |
#5
Posted 01 July 2018 - 07:17
piramyd, on 21 iunie 2018 - 14:47, said:
Dupa ce am incercat cateva lucruri, am aflat si raspunsul. Autoboxing/autounboxing autoboxing = de la primitiva la obiect care contine primitiva + metadate + metode de transformare a primitivei unboxing = inversul lui autoboxing atentie: nu este typecasting Daca erai atent la ce ti-am spus in postul anterior, mai ales la asta in special: WinstonMontana, on 19 iunie 2018 - 20:43, said: Function<Integer,Long> pyramid = value -> Long.valueOf(value.longValue()); Hai cu alt exemplu: import java.util.function.*; public class HW{ static Function<Double,Long> pyramid = (x) -> Long.valueOf(x.longValue()); public static void main(String []args){ System.out.println( pyramid.apply(100.23) ); } } Result: $javac HW.java $java -Xmx128M -Xms16M HW 100 Hai sa citim si putina documentatie inainte sa ne invartim pana ametim: https://docs.oracle....ang/Double.html Edited by WinstonMontana, 01 July 2018 - 07:23. |
#6
Posted 21 September 2018 - 08:24
@WinstonMontana, multumesc de explicatii, dar stiam tot ce ai scrit tu, si inteleg.
Poate nu m-am exprimat eu bine, dar ca sa intelegi care era problema mea (la care intre timp am gasit raspunsul, si e unul simplu). Daca te uiti la codul scris de mine, o sa vezi ca poti sa faci asta: IntToLongFunction converter4 = Main::functioneaza3; dar nu poti sa faci asta: IntToLongFunction converter5 = Main::nuFunctioneaza2; Iar explicatia pe care am gasit-o eu, e simpla si nu stiu de ce nu am vazut-o pe moment: java face automatic type casting de la tipuri de date primare mai mici la tipuri de date primare mai mari (de la int la long). Dar nu face type casting intre obiecte (de la Integer la Long). Merci, salut! |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users