Which class is java array??

for example, a 'name' array.
To see its length, use the reference name, ---> name.length
so I conclude that name's array class must have the static varriable length.
but what is that class?? where is it in the API??

Do you mean this class is only implemented byJVM??
Yep.
ie, an array type could have any name??I believe the JLS specifies what array class names
will be.
public class ArrayTypes {
public static void main(String[] args) throws
rows Exception {
System.out.println(new
ntln(new byte[0].getClass().getName());
System.out.println(new
ntln(new char[0].getClass().getName());
System.out.println(new
ntln(new short[0].getClass().getName());
System.out.println(new
ntln(new int[0].getClass().getName());
System.out.println(new
ntln(new long[0].getClass().getName());
System.out.println(new
ntln(new float[0].getClass().getName());
System.out.println(new
ntln(new double[0].getClass().getName());
System.out.println(new
ntln(new boolean[0].getClass().getName());
System.out.println(new
ntln(new Object[0].getClass().getName());
System.out.println(new
ntln(new ArrayTypes[0].getClass().getName());
System.out.println(new
ntln(new ArrayTypes[0][0].getClass().getName());
System.out.println(new
ntln(new int[0][0].getClass().getName());
[B
[C
[S
[I
[J
[F
[D
[Z
[Ljava.lang.Object;
[LArrayTypes;
[[LArrayTypes;
[[I
Very cool experiment there jverd. That gets props from me.

Similar Messages

  • How to create an instance of a class which is actually an array?

    the following code gives a runtime exception
    Object obj = (Object )attributeClass.newInstance();
    Exception:
    java.lang.InstantiationException: [Ltest.Name;[/b]
    Here test.Name is user defined class and i want to create an array instance of that class.
    I have tried the following also:
    [b]Object methodArgs[] = new Object[length];
    for(int j=0;j<length;++j){
    methodArgs[j] = singleMemberClass.cast(testArray[j]);
    Object temp = attributeClass.cast(methodArgs);
    In the above code singleMemberClass is test.Name, but the last line gives the following exception.
    java.lang.ClassCastException
    Message was edited by:
    lalit_mangal
    Message was edited by:
    lalit_mangal

    Try the following code
    import java.lang.reflect.Array;
    public class TestReflection {
         public static void main(String args[]) {
              Object array = Array.newInstance(A.class, 3);
              printType(array);
         private static void printType(Object object) {
              Class type = object.getClass();
              if (type.isArray()) {
                   System.out.println("Array of: " + elementType);
              System.out.println("Array size: " + Array.getLength(object));
    class A{
    }

  • The object array comes under which class

    hi there,
    can anybody tell me an array is defined in which class .
    for ex: when we give
    int a[ ]=new int[ ]
    wen "new "is used an object of array is created.
    and i studied somewhere that array is an object.
    then wen an array is an object it must b defined in a class.
    can anybody tell me in wich class.
    its urgent..
    plz do it as fast as possible
    take care'
    bye

    Actually I think the question was what class is the
    array ie arr.getClass().getName().Ah, I see. I guess I misread the question.
    I believe that the jvm creates them at runtime as
    necessary. Seeing as there are infinite
    possibilities for array types, it couldn't happen any
    other way.The class must also be available at compile time, not? Or else the compiler just "pretends" there's such a class, because it knows the rules of the language.

  • Is there any method which reflects the names of classes of java?

    is there any method with which dynamically we can get all the packages's name along with their classes of java(specially core classes of java)?if not how can we do that?

    The resource from which the Java VM loads the classes is considered to be implementation dependent. It may be class files or jar files contained in a file system hierarchy, or some kind of remote database. The now defunct Microsoft VM used a database repository that was able to reside on a remote class server within a network domain.
    Unfortunately, Sun did not design a class resource service interface with a "list resources" function, only a "get resource" function. You can get the class resource for any named class, but you cannot list packages or classes within a package or at the root level.
    This is further complicated by the fact that there is no such thing as an "installed package" as Java does not define any package installation system. The packages available to any runtime instance of the JVM is defined by the classpath properties passed from the OS. Different JVM instances can have completely different sets of available packages because they were passed different classpath values by the OS.
    If you know the class resource of the runtime environment, then you could create a subclass of the sun.misc.URLClassPath class and add to it methods that will list packages and classes found within a package using the interface of that known class resource.
    Most runtime environments use a standard hierarchical file system to hold jar and class files. A subclass of sun.misc.URLClassPath could use the java.io.File class to traverse the file system classpath paths in search of package directories and class files (Watch out for recursive directory links).
    The root packages can be obtained from the three levels of classpath paths in the System properties used by the JVM:     "sun.boot.class.path"
         "java.ext.dirs"
         "java.class.path"The collection of file system paths obtained from these properties would be searched for the names of the root level package directory names. Just remember that this will only work in a runtime environment that only uses this kind of class resource. If you run this where some other resource is also used, you will not see all of the packages available to that JVM.
    One note of caution: A single directory can hold package directories, jar files, and class files that belong to a specific package, but the package may include other package directories, jar files, and class files that are contained in other directories. Pieces of a single package may be strewn throughout the file system. The only way to find them all is to scan all of the classpath paths for that same package name. The directory does not define the package, it only provides more content for that package.
    I hope you find this of some use.

  • Using List Class in java.awt / java.util ?

    have a program that:
    import java.util.*;
    List list = new LinkedList();
    list = new ArrayList();
    ... read a file and add elements to array
    use a static setter
    StaticGettersSetters.setArray(list);
    next program:
    import java.awt.*;
    public static java.util.List queryArray =
    StaticGettersSetters.getArray();
    If I don't define queryArray with the package and class, the compiler
    gives an error that the List class in java.awt is invalid for queryArray.
    If I import the util package, import java.util.*; , the compiler
    gives an error that the list class is ambiguous.
    Question:
    If you using a class that exists in multiple packages, is the above declaration of queryArray the only way to declare it ?
    Just curious...
    Thanks for your help,
    YAM-SSM

    So what you have to do is explicitly tell the compiler which one you really want by spelling out the fully-resolved class name:
    import java.awt.*;
    import java.sql.*;
    import java.util.*;
    public class ClashTest
        public static void main(String [] args)
            java.util.Date today    = new java.util.Date();
            java.util.List argsList = Arrays.asList(args);
            System.out.println(today);
            System.out.println(argsList);
    }No problems here. - MOD

  • Mapping Java Arrays

    I was given an object model generated by an apache product, Axis. The generated java files use the Java Array in the following fashion:
    Class Zoo {
    private ArrayOfAnimals animals;
    // … public get/set methods cut
    Class ArrayOfAnimals {
    private Animal animals[];
    // … public get/set methods cut
    Class Animal {
    private String name;
    // … public get/set methods cut
    I was tasked with mapping the one-to-many relationship between zoo and an array of animals using the Animal array. I can’t find a mapping in TopLink to do this type of association. I am NOT allowed to modify the generated source code. I may be able to extend the generated classes, and perhaps provide a different superclass.
    I am allowed to create the relational model for these domain classes. Can anyone help with this type of mapping?
    Thanks

    TopLink does not directly support arrays as the mapping type for a collection, only collection types that support the Collection and Map interfaces.
    In general it seems odd to use an array instead of a Java collection which would be much more efficient (in terms of adding and removing) and much more functional. I would definitely suggest changing the generated code, or the way the code is generated if at all possible.
    The easiest way to map the array in TopLink would be the use get/set methods for the 1-m mapping on the Zoo class that converted the array to/from a Collection.
    i.e. something like,
    public List getAnimalsList() {
    return new Arrays.asList(animals.animals);
    public void setAnimalsList(List list) {
    animals.animals = (Animal[]) list.toArray();
    In general TopLink uses its ContainerPolicy class to handle collections. It may also be possible (but advanced) to write a custom container policy for your 1-m mapping that handles arrays.

  • Using ExecutorService class from java.util.concurrent package

    Dear java programmers,
    I have a question regarding the ExecutorService class from java.util.concurrent package.
    I want to parse hundreds of files and for this purpose I'm implementing a thread pool. The way I use the ExecutorService class is summarized below:
    ExecutorService executor = Executors.newFixedThreadPool(10);
            for (int i = 0; i < 1000; i++){
                System.out.println("Parsing file No "+i);
                executor.submit(new Dock(i));
            executor.shutdown();
            try {
                executor.awaitTermination(30, TimeUnit.SECONDS);
            } catch (InterruptedException ex) {
                ex.printStackTrace();
            executor.shutdownNow();However, the code snippet above creates all the 1000 threads (Dock objects) at once and loads them to the executor, and thus I'm worrying about memory leak. I haven't tested it on 1000 files yet but just on 50 small ones, and even if the program prints out "Parsing file No "+i 50 times at once, it executes normally the threads in the background.
    I guess the write way would be to keep the number of active/idle threads in the executor constant (lets say 20 if the thread pool's size is 10) and submit a new one whenever a thread has been finished or terminated. But for this to happen the program should be notified someway whenever a thread is done. Can anybody help me do that?
    thanks in advance,
    Tom

    Ok I found a feasible solution myself although I'm not sure if this is the optimum.
    Here's what I did:
            ExecutorService executor = Executors.newFixedThreadPool(10);
            Future<String> future0, future1, future2, future3, future4, future5, future6, future7, future8, future9;
            Future[] futureArray = {future0 = null, future1 = null, future2 = null, future3 = null, future4 = null, future5 = null,
            future6 = null, future7 = null, future8 = null, future9 = null};
            for (int i = 0; i < 10; i++){
                futureArray[i] = executor.submit(new Dock(i));
            }I created the ExecutorService object which encapsulates the thread pool and then created 10 Future objects (java.util.concurrent.Future) and added them into an Array.
    For java.util.concurrent.Future and Callable Interface usage refer to:
    [http://www.swingwiki.org/best:use_worker_thread_for_long_operations]
    [http://www.particle.kth.se/~lindsey/JavaCourse/Book/Part1/Java/Chapter10/concurrencyTools.html]
    I used a Future[] Array to make the code neater. So after that I submitted -and in this way filled up- the first 10 threads to the thread pool.
            int i = 9;
            while (i < 1000){
                for (int j = 0; j < 10; j++){
                    if (futureArray[j].isDone() && i < 999){
                        try{
                            i++;
                            futureArray[j] = executor.submit(new Dock(i));
                        } catch (ExecutionException ex) {
                            ex.printStackTrace();
                        } catch (InterruptedException ex) {
                            ex.printStackTrace();
                try {
                    Thread.sleep(100); // wait a while
                } catch(InterruptedException iex) { /* ignore */ }
            executor.shutdown();
            try {
                executor.awaitTermination(60, TimeUnit.SECONDS);
            } catch (InterruptedException ex) {
                ex.printStackTrace();
            executor.shutdownNow();
        }Each of the future[0-9] objects represents a thread in the thread pool. So essentially I'm check which of these 10 threads has been finished (using the java.util.concurrent.Future.isDone() method) and if yes I replenish that empty future[0-9] object with a new one.

  • Please help...Its really urgent- Which class to use for this?

    Can someone help me with this? I want to read characters from a file
    Ultimately I want to load some information from a text file which has information like this:
    0123456789
    0
    1
    4
    10
    X0123456789
    01202120212
    11202120212
    20212021202
    I want to load the information from X onwards .. all the rows and columns in a 2D array..
    I am not able to read the file at all ...
    I tried RandomAccessFile, BufferedReader..... They had problems.....what class sould I use.. any if you can give hints how I can reach X and start reading to 2d array...... It will be really very very helpful........
    Please help......

    Hi...
    See this is the partial code
    class LanguageRecognizer
         String word;
         String fileName;
         BufferedReader reader;
         char transitionTable[][];
         char letters[];
         char startState;
         char endStates[];
         int rows;
         int columns;
         public void getFileName(String fileName_)
              /********** Create File Objects to read file ******************************/
              try{
              this.fileName = fileName_;
              java.io.BufferedReader reader = new java.io.BufferedReader(new FileReader(fileName));
                   /***** Read File **************/
                   int i;
                   int X = 0;
                        /** as long as its not the EOF **/
                        while((i=reader.read()) != -1)
                             //Print all characters
                             System.out.println((char)i);
                             if (((char)i)=='X')
                                  X = i;
                                  System.out.println("X is at "+(char)i);                         
                             }//if
                        }//while          
              catch(Exception e)
                   e.printStackTrace();
              /**Call Prompt user and ask user to enter a word****************************/
                   promptUser();
         }//getFileName()When I say
    The while loop prints this file containing:
    0123456789
    0
    1
    4
    10
    X0123456789
    01202120212
    11202120212
    20212021202
    But it prints it in this format :
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //Want to take this in the letter[]
    0 //want to take this as the startstate
    1 // This is the end state which could be more than one so in endState[]
    4 // This is the number of rows in the transition table
    1 // This is columns
    0
    //This is the transition table that I want in a 2D array......
    X // This is the X printed with the if() in the code
    X
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    0
    1
    2
    0
    2
    1
    2
    0
    2
    1
    2
    1
    1
    2
    0
    2
    1
    2
    0
    2
    1
    2
    2
    0
    2
    1
    2
    0
    2
    1
    2
    0
    2
    So I want to capture each letter typed in arrays.......But I am not able to seperate them and get them in my datatypes... atleast not using this class BufferedReader.... so can I use this class and get it or which class can I use??

  • Java Arrays basic

    i want to ask a basic question which i don't know..
    Employee[] emp=new Employee[10];
    System.out.println(emp.length);
    in the second line, we are using length variable..
    i want to know, from where 'length' is coming?
    in which class it is defined?
    Thanks in advance...

    Yes...
    In the Java programming language arrays are objects (§4.3.1), are dynamically created, and may be assigned to variables of type Object (§4.3.2). All methods of class Object may be invoked on an array.
    this is the very 1st line of the documentation...sometimes reading documentation is helpful (I know sometimes its boring too...)
    have you checked ArrayList? its pretty impresive ... lol
    ArrayList<String> arr= new ArrayList<String>();ArrayList is a growable Array.

  • How to declare normal java array in fx

    How can we declare normal java array in fx. lets say I extend an abstract java class and it has a method which takes String array as parameter: abstract public void met(String[] users) ;How can i declare String[] parameter while overriding this abstract method in javafx. This does not work: override public function met(s:String[]){ ... }

    Hi,
    The code below works for me:
    public function run(args:String[]){
         var s:String[] = ["Hi", "Hello", "Love", "Peace"];     
         var t:Test2 = Test2{};     
         t.met(s);
    public abstract class Test{
         public abstract function met(s:String[]):Void;
    class Test2 extends Test{
         public override function met(s:String[]):Void{
              for(x in s){
                   println(x);
    }[]'s

  • The Mysterious java array implementation

    In java when we create an array of primitive data type
    e.g long[] x = new long[10];
    we can reterieve the lenght of the array using x.length. Does someone know where this variable length is declared. As in java arrays are implemented as an Objects. Even i treid to find out the class reference variable "x" belongs to, and I came to know that it is "[J" and this class implements Cloneable and Seriaziable interface. But there is no field or variable like "length".                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    Java-Aspirant wrote:
    . Even i treid to find out the class reference variable "x" belongs to, and I came to know that it is "[J" and this class implements Cloneable and Seriaziable interface. But there is no field or variable like "length".
    If you want to use reflection on arrays, there's  [java.lang.reflect.Array|http://java.sun.com/javase/6/docs/api/java/lang/reflect/Array.html which allows you to interrogate the length pseudo-field and access elements.

  • Problems creating a Java Array using JNI-HELP!

    Hi,
    I am trying to create a Java Array using JNI.I have posted the code below. The problem is that the oth element is added correctly to the Array but when the JVM gets to the next element...it goes for a toss. It is not able to create a new instance of the object in GetUGEntity() function...there seems to be some problem in creating a new instance of the object!
    Can somebody help me with this?
    jobject GetUGEntity(JNIEnv *env, UF_DISP_j3d_entity_t* entity_list)
         int numVerts=0, numStrips=0;
         jfieldID fid;
         jdoubleArray jTransform=NULL;
         jstring jstrName=NULL;
         jdoubleArray jNormals=NULL;
         //Init an Entity object
         cout<< "**Getting New Class Reference...";
         jclass jEntity = env->FindClass("Lcom/wipro/java3d/rmi/Entity;");
         cout << "**got Class reference..."<<endl;
         if (jEntity == NULL)
              return NULL;
         cout<<"Creating new object instance...";
         jmethodID mIDInit = env->GetMethodID(jEntity, "<init>", "()V");
         cout<<"Got java method id...";
         jobject javaObj = env->NewObject(jEntity, mIDInit);
         if (javaObj==NULL)
              return NULL;
         cout << "Created!" << endl;
         //Entity ID
         cout<< "**Setting eid...";
         fid=env->GetFieldID(jEntity,"eid","I");
         jint eid = (jint)(entity_list)->eid;
         env->SetIntField(javaObj, fid, eid);
         //env->DeleteLocalRef(eid);
         cout << "Done!" << endl;
         cout << "Done!" << endl;
         cout<< "**Returning jobject...";
         return javaObj;
    jobjectArray createJArray(JNIEnv* env, UF_DISP_j3d_entity_t** entity_list, int noOfEntities )
         UF_DISP_j3d_entity_t* tempVar=NULL;
         cout<<"*Creating Jobjectarray...";
         jobjectArray jEntityArray = (jobjectArray) env->NewObjectArray(noOfEntities,
              env->FindClass("Lcom/wipro/java3d/rmi/Entity;"),NULL);
         cout<<"Created!"<<endl;
         for(int i=0; i<noOfEntities;++i)
              tempVar = &(*entity_list);
              if (tempVar !=NULL)
                   cout<<"*Trying to get Entity...."<<endl;
                   jobject jEntity = GetUGEntity(env, tempVar);
                   if (jEntity!= NULL)
                        cout<<"Got Entity!" <<endl;
                        cout <<"*Setting Array Element....";
                        env->SetObjectArrayElement(jEntityArray, i, jEntity);
                        cout << "Done!" << endl;
                   else
                        printf("ERROR: Did not get Entity Reference");
              else
                   printf("ERROR: Got a NULL Reference!");
         return jEntityArray;

    Hi Deepak,
    Could you please let us know upto which line your code is going safe. Try printing the value in the structure before you send that to the method GetUGEntity().
    I am not too sure that would be a problem. But I have faced a problem like this, wherein I tried to access a structure for which I have not allocated memory and hence got exception because of that.
    Since your JNI code seems to be error free, I got doubt on your C part. Sorry.
    Dhamo.

  • I have been getting java.lang.ClassNotFoundException: ZeroApplet.class and java.lang.ClassNotFoundException: JavaToJS.class crashes with JRE version 1.6.0_26-b03-384-10M3425 VM executing a Java Applet. Is Apple aware of this problem? No longer supported?

    My web page uses a Java Applet to allow my visitors to replay chess games; the Chess Viewer Deluxe applet was written by Nikolai Pilafov some time ago and has been working properly for some time (until recently). I don't monitor this part of my site regularly so I am not sure when it began to fail. On his web site [http://chesstuff.blogspot.com/2008/11/chess-viewer-deluxe.html] he has a link to check LiveConnect object functionality (which fails for OBJECT tags). His recommendation is to "seek platform specific support which might be available from the JRE developers for your platform".
    I have been getting java.lang.ClassNotFoundException: ZeroApplet.class and java.lang.ClassNotFoundException: JavaToJS.class crashes with JRE version 1.6.0_26-b03-384-10M3425 VM executing a Java Applet. Until I checked the LiveConnect object functionality, I was unable to identify the source of the console error messages. This does seem to be the smoking gun.
    Is Apple aware of this problem? Are these classes no longer supported? Has anyone else had this problem? You can attempt to recreate the problem locally by going to my web page: http://donsmallidge.com/DonSmallidgeChess.html
    Thanks in advance for any help you can provide!
    Abbreviated Java Console output:
    Java Plug-in 1.6.0_26
    Using JRE version 1.6.0_26-b03-384-10M3425 Java HotSpot(TM) 64-Bit Server VM
    load: class ZeroApplet.class not found.
    java.lang.ClassNotFoundException: ZeroApplet.class
        at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:211)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:144)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
        at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:662)
        at sun.applet.AppletPanel.createApplet(AppletPanel.java:807)
        at sun.plugin.AppletViewer.createApplet(AppletViewer.java:2389)
        at sun.applet.AppletPanel.runLoader(AppletPanel.java:714)
        at sun.applet.AppletPanel.run(AppletPanel.java:368)
        at java.lang.Thread.run(Thread.java:680)
    load: class JavaToJS.class not found.
    java.lang.ClassNotFoundException: JavaToJS.class
        at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:211)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:144)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
        at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:662)
        at sun.applet.AppletPanel.createApplet(AppletPanel.java:807)
        at sun.plugin.AppletViewer.createApplet(AppletViewer.java:2389)
        at sun.applet.AppletPanel.runLoader(AppletPanel.java:714)
        at sun.applet.AppletPanel.run(AppletPanel.java:368)
        at java.lang.Thread.run(Thread.java:680)

    I just went up to check the LiveConnect object functionality page AND IT WORKED THIS TIME! I must confess, this is very mysterious. I will do some more checking and reply here if I can determine why it is working now (and more importantly, why it didn't work before).

  • How to find out which class invoked the constructor

    i wrote a class named DAOBase and i am creating object of the same in several other classes. So is there any way to know which class has invoked the constructor of DAOBase.
    i want to print out the name of the class that invoked the constructor of DAOBase at the time of constructor invocation...
    Is there any way?
    Please Help...

    Alternatively, use SecurityManager.getClassContext() as inclass CallerAndMain {
         public static void main(java.lang.String[] args) {
              System.out.println("I'm in " + new SecurityManager() { public String getClassName() { return getClassContext()[1].getName(); } }.getClassName() + " class");
              new Try();
    class Try {
         public Try() {
              System.out.println("I'm in " + new SecurityManager() { public String getClassName() { return getClassContext()[1].getName(); } }.getClassName() + " class");
              System.out.println("I was called from " + new SecurityManager() { public String getClassName() { return getClassContext()[2].getName(); } }.getClassName() + " class");
    }

  • Issue with class loading -  Java concurrent Program

    Hi ,
    We are facing a strange issue for one of our customer.
    Scenario :
    We have a Java Concurrent Program (A.java ) which refers another Java class (B.java) , we modified the file B.java for a fix and created a patch. after applying the patch and bouncing the apache ,we found that B.java is loaded the old version of the class file.
    We asked them to restart the concurrent manager and related services, still we see that old version of B.java is loaded. (confirmed by adding code throwing exception - throw new Exception from a specific line and found that its not getting thrown at run-time)
    Any clue on this?.
    Thanks
    Joseph George

    Deployed this file both tier - Database server tier and Application server tier.
    I have face same issue, Concurrent program not picking file application server tier. its picking file from database server tier.
    Thanks, Avaneesh

Maybe you are looking for

  • How do I get my iMac cd player to release a stuck disc ?

    HOW DO I GET  A STUCK CD TO EJECT FROM MY Imac ?

  • Full folder names don't show.

    In iOS, file/folder names are shortened when they cannot be displayed in one line. However, viewing a folder name within a folder still shows its shortened name. The expected result is that it should show its full, non-shortened name. "Cloud File Man

  • AE 10.5 color picker crash Yosemite

    Since upgrading to Yosemite, After Effects 10.5 consistently crashes whenever I use the color picker tool.  The crash occurs after clicking the color picker tool, then moving the cursor outside the bounds of the tool button. This occurs on 2 differen

  • Regarding EHS details

    Dear Friend, My friend is an Environmental Engineer having 5 years of experience in water and waste water treatment technology. She wants to move to SAP EHS. Kindly suggest if it is recommendable. Also please provide more detail regarding training of

  • BackColor in a matrix

    Hi all, How can i fill the color in single Row I tried this oMatrix.Columns("Art").Cells(i).Specific.BackColor = vbRed but with this code i fill entire columns Sorry for my English Best regards Hany