Cannot Assign Generic Object Reference To Similar Type
Jul 26, 2014
I have the following code:
public class CollisionManager<T> {
private boolean collision = false;
private T mainEntity;
public <T extends Entities> void handleCollision(T mainEntity, T secondEntity){
this.mainEntity = mainEntity; // This is illegal.
}
}
Why "this.mainEntity = mainEntity" is incorrect and also show me the correct way to achieve this?
The error I am getting is "Type mismatch: cannot convert T to T"
I have the following code in which I am looping through the rows of one array (composed of Strings) and copying it to another array. I am using .clone() to achieve this and it seems work as it changes the memory location of the rows themselves. I did notice that the String objects are still pointing to the same location in memory in both arrays but I won't worry about that for now, at the moment I just want to understand why the array I am cloning is not successfully assigning to the other array.
This is the incorrect line: ar[r] = maze[r].clone();
Now lets say that I want to access a method 'addInterest()' that is in the 'SavingsAccount' class I would have to do: '((SavingsAccount)s).addInterest();'
The question I have is why do I have to cast 'b' to SavingsAccount? Isn't the actual object reference of 'b' already an instance of 'SavingsAccount' class? How does the 'BankAccount' affect the object itself? I'm really confused as to what class is truly getting instantiated and how BankAccount and SavingsAccount are both functioning to make the object 'b'.
I don't understand why the object reference variable 'a' cannot be recast from a thisA object reference to a thisB object reference.Is it the case that once a reference variable is linked to a particular object type then it cannot switch object types later on.I am facing the Java Associate Developer exam soon and I am just clearing up some issues in my head around object reference variable assignment,
class thisA {} class thisB extends thisA { String testString = "test";} public class CastQuestion2 { public static void main(String[] args) { thisA a = new thisA(); thisB b = new thisB();
Got a problem with generics, which I'm still pretty new at. Here's a program that compiles fine:
import java.util.ArrayList; import javax.swing.JComponent; public class Experiments { public static void main(String[] args) { ListHolder holder = new ListHolder();
[Code] ....
It's useless, but it compiles. If I change Line 14, however, to add a generic type parameter to the ListHolder class, Line 10 no longer compiles:
import java.util.ArrayList; import javax.swing.JComponent; public class Experiments { public static void main(String[] args) { ListHolder holder = new ListHolder();
[Code] ....
I get this error:
Uncompilable source code - incompatible types: java.lang.Object cannot be converted to javax.swing.JComponent at experiments.Experiments.main(Experiments.java:10)
Apparently, the introduction of the type parameter leaves the compiler thinking that aList is of type Object. I can cast it, like this:
JComponent c = ((ArrayList<JComponent>)holder.aList).iterator().next();
That makes the compiler happy, but why is it necessary? How does adding the (unused) type parameter to the ListHolder class end up making the compiler think the aList member of an instance of ListHolder is of type Object?
I've looked around a bit myself online (admittedly for only a few minutes) and have yet to come across a straight-forward object for date selection. Does Java offer something like that?what should be a simple task?
It is important to note that the inference algorithm uses only invocation arguments, target types, and possibly an obvious expected return type to infer types. The inference algorithm does not use results from later in the program.
Generic methods are methods that introduce their own type parameters. This is similar to declaring a generic type, but the type parameter's scope is limited to the method where it is declared. Static and non-static generic methods are allowed, as well as generic class constructors.
1. The method is only exclusively to be used for the declared argument parameter? For example given a generic method:public static <String, Integer> boolean method(Pair<K, V> p1) {}I could only invoke the method if Pair argument parameter is <String, Integer>?
I have set up a project in Eclipse 3.1 and am using java 5.0 compiler.
Here's my folder structure in Eclipse
Java Code:
DFSRemoteClientTestClient.java mh_sh_highlight_all('java'); DFS is the project in Eclipse
And this is how it looks my java class
Java Code:
package RemoteClient; import java.util.*; // other imports public class TestClient { public static void main(String [] args) throws ServiceInvocationException { // business logic here .... } } mh_sh_highlight_all('java');
So, basically, my java class is just a simple class with a main function.
Now when I build my project, using Project->Clean...
Then I get this as an error at the very first line where i specify the package
This is the error:
Java Code: The type Class is not generic; it cannot be parameterized with arguments <T> mh_sh_highlight_all('java');
Is this the proper way to add to a generic list? My code works just fine, but I got this feeling that there might be some kind of flaw in it or something. Is this pretty much the basic way to add any type of data to a generic list?
import java.util.LinkedList; public class ListOfGeneric<E> { private LinkedList<E> myList;
I am following this article [URL] .... till now I have made some code
This is my Interface
public interface Comparable<T> { public int compareTo(T o); }
And this is my class where I am using Bound Type Parameter on Generic Methods
public class GenericMethodBoundType { public static <T extends Comparable<T>> int countGreaterThan(T[] anArray, T elem) { int count = 0; for (T e : anArray)
[Code] .....
What else I need to do both in main method and at what parameterized types I need to pass at the class?
I don't really know what this means and it is sending an error when I try to run my program I am trying to set the x and y value (Int x and int y) to setVisible false at a specific time in my game but it keeps sending the error that int is not a reference type.
This means that x is a reference to objects of type, "myType" and no memory has been set aside for an instance of this object. I think it's true that x also has the starting memory address of this object.
What I feel uncertain about is if x is telling the JVM(?) where it can find the starting address of this object, why do we care about the type that x is?
i.e., if we assign x to an object totally unrelated to this type then the compiler would complain - correct? If so, how come, since all x is doing is telling the JVM(?) where to find your object (via the address it contains).
I suppose all, hy a reference has a type associated with it if all the reference does is point you to the object?
Create an equals method that takes an object reference and returns true if the given object equals this object.
Hint: You'll need 'instanceof' and cast to a (Geocache)
So far I have:
public boolean equals(Object O){ if(O instanceof Geocache){ Geocache j=(Geocache) O; if (this.equals(j)) //I know this is wrong... but I can't figure it out return true; }
else return false; }
I think I have it correct up to the casting but I don't understand what I'm suppose to do with the this.equals(). Also I'm getting an error that I'm not returning a boolean... I get this all the time in other problems. I don't get why since I have to instances of returning booleans in this. "returns true if the given object equals this object" makes no sense to me. I assume the given object, in my case, is 'O'. What is 'this' object referring to?
simple assignment of values to a previously initialized object?
See the method useModel ()
The idea is, assign the values to the temporary object, data
Then plunk it into this statement:
model.addRow ( data );
Simple enough?
I've been putzing with the syntax for multiple hours, over days, now.
With and without
[0];,
Netbeans keeps giving me: Illegal start of expression data is declared as an array of Object, although, in this case, it does not need to be an array. What is the correct syntax?
I've been referencing my text and a few other sites to assist in building this class...and I'm still uncertain of the purpose of a few of the methds: next(), hasNext().
Also, I have not found a clear explanation of the following code example: tail.next = tail; There are several instances of this in the code below....I'm just not sure exactly how this assigns the value to the next object in the other class..?? ??
public class MySinglyLinkedList<T> implements SinglyLinkedList<T>{ protected NodeList<T> head, tail, current, newNode; String name; int size = 0; public MySinglyLinkedList(){ head = null; tail = null;
I have a Homework that's on Polymorphism and inheritance. The problem is of a triangle class. The super class is GeometricObject and the subclass Triangle. I have the parent and child classes compiling, now it's the test program.
The problem is the examples in the book don't show anything about prompting input for objects. The objects in the Triangle class are: side1, side2, and side3 and so I created objects in the test: Triangle sideOne = new Triangle(); . I've tried to compile but jGrasp doesn't like anything I do and the instructor in my class hasn't shown us examples yet. Can I prompt input for reference type and not just primitive type?
Primitive arguments, such as an int or a double, are passed into methods by value. This means that any changes to the values of the parameters exist only within the scope of the method. When the method returns, the parameters are gone and any changes to them are lost.
Reference data type parameters, such as objects, are also passed into methods by value. This means that when the method returns, the passed-in reference still references the same object as before. However, the values of the object's fields can be changed in the method, if they have the proper access level.For example, consider a method in an arbitrary class that moves Circle objects:
public void moveCircle(Circle circle, int deltaX, int deltaY) { // code to move origin of // circle to x+deltaX, y+deltaY circle.setX(circle.getX() + deltaX); circle.setY(circle.getY() + deltaY);
// code to assign a new // reference to circle circle = new Circle(0, 0); }
Let the method be invoked with these arguments: moveCircle(myCircle, 23, 56)
Inside the method, circle initially refers to myCircle. The method changes the x and y coordinates of the object that circle references (i.e., myCircle) by 23 and 56, respectively. These changes will persist when the method returns. Then circle is assigned a reference to a new Circle object with x = y = 0. This reassignment has no permanence, however, because the reference was passed in by value and cannot change. Within the method, the object pointed to by circle has changed, but, when the method returns, myCircle still references the same Circle object as before the method was called.
I am trying to implement the following example to override the equality and hashCode method if the class has reference type member. I do get the expected result "true" for equal and "false" for non-equal objects. But the print statement in the Circle's equal method is not executed when the objects values are not equal. I don't know what i am missing, though i get the equality result "false" as expected for non equal objects.
class Point{ private int x, y; Point (int x, int y) { this.x =x; this.y = y;
I am doing a Junit test case, but I keep having issues with AssertEquals ( object expected, object actual). I don't know how to reference the other actual object so that it can compare to the expected.
public void add (Distance d) throws CustomException { //I can also convert feet to inches and add all inches together and then divided inches to feet and inches Distance result = new Distance(); int newFeet = this.feet + d.getFeet(); int newInches = this.inches + d.getInches(); if(newInches > 11) { newFeet = newFeet + (newInches/12);
I have started working on a little project in my free time. It is just a simple text rpg that runs in a counsel window. I have 5 files each file contains 1 class.
public class SomnusCharacter { private String gender = ""; private int age = 0; private String race = ""; private int level = 0; private int xp = 0;
[Code] ....
The chain of events right now is:
1. MainMenu is run 2. If user inputs n CreateCharactor is run 3. User inputs name, age, ect in SomnusCharacter object made in CreateCharacter 4. Intro (just rough demo for testing purposes) is run 5. If user inputs m Menu is run 6. Menu calls and prints out all the information from the object made in CreateCharacter
Step 6 is where I am having my problems. How can I reference (lets say the SomnusCharacter object made is called player) player from my Menu class? I know that if I made a new character that it would just create another SomunsCharacter object with the default values again.
I read somewhere : "Java use clone() method of Object class to copy content of one object to the other. The problem will arrive if the Class that needs to be copied also contains reference to the other object."Not able to understand the second line.
I am trying to get this to where I can type in a name and it will search through each object and print back the corresponding object info.
Java Code:
import java.util.Scanner; public class MyPeople { public static void main(String[] args) { Person[] p = new Person[] { new Person("Chris", 26, "Male", "NJ", "Single"), new Person("JoAnna", 23, "Female", "NJ", "Single"), new Person("Dana", 24, "Female", "NJ", "Single"), new Person("Dan", 25, "Male", "NJ", "Single"), new Person("Mike", 31, "Male", "NJ", "Married") };