Type Safety - Unchecked Cast From Object To LinkedList (EventData)
Feb 28, 2014
I am getting "Type safety: Unchecked cast from Object to LinkedList<EventData>" in eclipse for a piece of code stated below
public LinkedList<EventData> loadFromFile(File file) {
queue=new LinkedList<EventData>();
//Some piece of code
return (LinkedList<EventData>)queue.clone(); //--->getting warning here
}
I know that because clone() method is returning Object, hence compiler doesn't have type information that's why showing warning. I don't want to suppress this warning instead i want to fix it.
I'm doing LinkedList at the moment and I'm having a bit of trouble with my assignment. The part I'm struggling with is remove an employee from a training course (as specified by their employee number),
what I'm confused about is iterating through the linked list to find the employee we're looking for. What I would do in this situation if I was using an array list is
for(Employee emp : myList) { if(emp.getEmployeeNumber().equals(searchedNumber)) { remove from training course.. break; } }
"Can only iterate over an array or an instance of java.lang.Iterable" is what it is telling me, and I can't figure out why/how its done differently for linked lists.
Im trying to loop through a hashmap of objects. They are defined as People objects. People has two subclasses , Instructor and Student. As I am looping through the map of People, I am searching for class Instructor. If I find it, I want to access its method getDepartment in a println by casting to Instructor. When I do I get a runtime error:
Exception in thread "main" java.lang.ClassCastException: java.util.HashMap$Node cannot be cast to uStaff.Instructor at uStaff.PersonApp.menu(PersonApp.java:108) at uStaff.PersonApp.main(PersonApp.java:21)
//Instantiate the different Person, student and instructor objects Person thisPerson = new Person(01,fName,mName,lName,email,ssn,age); Student thisStudent = new Student(02,"Stacey","Marie","Morgan","smorgan@gmail.com","213-45-6789",20); thisStudent.setMajor("music"); Instructor thisInstructor = new Instructor(03,"Joe","Douglass","Wells","joe@drumhaven.com","555-98-3029",46); thisInstructor.setDepartment("Computer Science");
I want to write formatted output on a notepad file using ObjectOutputStream but I am not getting it in human readable formatted form
Here is my person class
public class Person implements Serializable { private String firstName; private String lastName; private int age; public String getFirstName() { return firstName;
[code]....
I want to know how to use printStream.print() like method to write formatted output.
I'm developing an application to track the status of a production flow-line and have hit a bit of a snag. When attempting to read saved data I run into this:
Exception in thread "main" java.lang.ClassCastException: flowline.End_Of_File cannot be cast to flowline.Operation at flowline.Station.checkLoadPreviousStationStatus(Station.java:91) at flowline.Station.main(Station.java:212) Java Result: 1
I've been reading up on different methods to saving and retrieving data and have decided ObjectInputStream would be the best option.
The save method works fine, I opted to use a EndOfFile class to determine when I've reached the end of the input stream. The problem is, when my loop encounters this object, it doesn't terminate the loop.
public void checkLoadPreviousStationStatus() throws FileNotFoundException, IOException, ClassNotFoundException, EOFException, TempArrayOutOfBoundsException{ Object loadOpn = null; End_Of_File eof = new End_Of_File(); File f = new File(fileName);
[Code] .....
The Operation cast is a cast to the objects my LinkedList contains. The highlighted line is where the exception occurs.
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();
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") };
As web server has multiple threads to serve client requests in Thread Pool & to ensure Thread Safety we should not use any variables or Objects at Instance/Class level.But in case of Session Variable which one is the Best Practice as the Session object is used by all the requests to have the same Session ID.
My Code :
public class MyServlet extends HttpServlet { private static Logger log = Logger.getLogger(ClientRegistrationServlet.class); private HttpSession session; /* This is used at Instance Level*/ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String filename="C:UsersRajashekarDesktopfwfwdSoftware Failures1_Test.txt";//Input Files String data; public ArrayList<String> value=new ArrayList<String>(); public void read() throws IOException{ File f = new File(filename);
There is a sentence in JLS 7 which I can't figure it out. It says :
A cast from a type S to a parameterized type T is unchecked unless at least one of the following conditions holds: -S <: T -All of the type arguments (ยง4.5.1) of T are unbounded wildcards -T <: S and S has no subtype X other than T where the type arguments of X are not contained in the type arguments of T.
Condition one and two I got it. But the number three is really bugging me. I write some code in order to try to understand it.
class G<X>{} class D<T,U> extends G<T>{} G<String> g = new G<>(); D<String, Integer> dd = (D<String, Integer>) g;
In Eclipse I got no warning but it shouldn't give one ?
Because g has others subtypes than D<String, Integer> (e.g. D<String, List> , D<String, G>)
Am I missing something about the contained type arguments ?
I know checked exception need to be checked at compile time and runtime exception need not be checked at compile time.
My question is not related to the definition.
The question is on what basis have they selected that FileNotFound exception is a checked exception and NullPointerException is an unchecked exception? Is it the random wish of the creator or is there reason behind why something is selected as checked exception and something as unchecked?
I want to get the max volume from a file that I stored in an arraylist but it don't know if this is the way to do it. also I don't know how to print the method in the main method. here is the method that will get the max volume
public Shape3D maxVolume(ArrayList<Shape3D> shapes ){ Shape3D currentMax; int currentMaxIndex = 0; for ( int i = 1; i < shapes.size(); i++)
[Code] ....
This is my shape3D class
public abstract class Shape3D implements Comparable<Shape3D> { private String type; public double radious; public double height;
I want to create a program where I need to create an object of list type such as text file will contain nos like 1,2,3,4,5 and write into text file and delete the in FIFO order i.e 1,2,3,4,5...how i can achieve to write a program? I tried bt everytime got concurrent modification exception or Array out of bound exception.
public void randomCreate(ParentObject obj){ int x = random(0-4); //pseudo int y = random(0-4); //pseudo create new ParentObj(x,y); }
ParentObject is actually abstract, so you would only ever pass one of its children objects to it, and a child object of that type would be created. It seems like there should be a way to pass a type, rather than an object, and then create an instance later down, but I don't know if that is actually possible, or if it is poor programming style.
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 just begin to understand collections in Java. I read about the differences between LinkedList and ArrayList but have several doubts on it. I have mentioned them below
1) Why retrieving in ArrayList is faster then LinkedList?. Since both have the get method how does performance differ?.
2) How does re-sizing happens internally in ArrayList when a item is added or removed?. How slow this is compared to the pointer re-shuffling in LinkedList when a item is added or removed?.
My remove(item E) method is working fine if I remove an item that is in the list. However, it has an error when I try to remove an item which is not on the list!
Linked List Class
import java.util.NoSuchElementException;
public class LinkedList<E> { private Node<E> head; // head node of the list private int size = 0; // number of elements that have been added to the list // Returns the element at a specific list index. // Big-O: O(n) (due to the nodeAt call, which must traverse the list) public E get(int index)
Okay, I'm having a problem with my LinkedList. When I run the driver program it's telling me that I have no "add" method and I don't know what's going on.
Driver Program:
public class TestLinkedList { public static void main(String[] args) { MyLinkedList<String> L = new MyLinkedList<String>(); L.add("Browns"); L.add("Ravens"); L.add("Steelers");
I can't figured out why it's keep giving me error when I tried to add i to the linkedlist. I tried changing it to other numbers but keep giving me nullExceptionPointer.
public static void subset(double[] weight, double[] value, int start) { double sumWeights = 0; for(int i = start; i<weight.length; i++){ if(sumWeights+weight[i]>L){ continue;