Polymorphism / Dynamic Binding - Invoking Wrong Method
Jan 9, 2014
Why is the equals-method in the super-class invoked? Shouldn't the equals-method in the sub-class be invoked(at least in the first if-statement since b2 is a B(i know B is also an A))?Is the equals-method overridden? Or does B have its own equals-method?
class SomeClass{
public static void main(String[] args) {
B b1 = new B(123,1);
B b2 = new B(123,2);
[code]...
View Replies
ADVERTISEMENT
Mar 27, 2015
I have a question regarding static binding and dynamic binding. Say for example we have below hierarchy,
class Animal
{
public void eat() {
System.out.println("Animal Eating");
}
}
[Code] .....
1) a.eat(); // Prints Animal eating ---> Static Binding 2) a.eat(); // Prints Dog eating ----> Dynamic Binding
Static Binding means,compiler will be able to decide which method to call based on class type of reference variable at compile time.That is compiler will check whether method is available or not in class.
Dynamic binding means,at runtime JVM will run the method implementaton,based on the object which reference variable is pointing.
So basically compiler will check class type of reference variable and at runtime JVM will check what type of object reference variable is pointing.
Here my my doubt is , in below both cases,that is
1) a.eat(); // Prints Animal eating ---> Static Binding
2) a1.eat(); // Prints Dog eating ----> Dynamic Binding
At compile time,compiler will check whether method is available or not in class. Since eat() method is available ,then in both cases it should be Static binding. or at run time if JVM decides which method implementation to call,then JVM will check which object the reference variable is pointing,then in above 2 cases also JVM will check in Animal object and Dog object for the method eat(). Since eat() method available then both should be dynamic binding.
I am getting doubt on what parameters/conditions we are deciding which is static binding and which is dynamic binding .
Will compiler will check the type of reference variable and also type of object at compile time and when it is ambiguous it leaves the decision to JVM?
Or is it like if method call and method implementation belong to same class then it is static binding and if method call and method implementation belong to different class in same inheritance hierarchy then dynamic binding.
View Replies
View Related
Feb 26, 2015
I am currently working on a dice game. I have a private method called rollDice and it performs the action of rolling two dice. For my project, I need to create another method called playerRolls and I am supposed to invoke the rollDice method in the playerRolls method and perform actions based off of that. My question right now is how do I invoke a method into another method of the same class?
View Replies
View Related
Oct 17, 2014
Java-code, When i compile the java doc. I get output;
Perceptron.java:12: learn(Instance[],int,int) in Perceptron cannot be applied to (Instance[],int)
PerceptronModel model = learn(train_data,5);
^
1 error
And here is the code
import java.io.*;
public class Perceptron {
public static void main(String[] args) throws IOException {
DataReader reader = new DataReader();
reader.init(args);
[Code] ....
View Replies
View Related
Apr 16, 2015
I'm writing a code with a cellphone class to set price, brand and serial number. I'm also, in the main method, initializing 100 different cellphone in a matrix style ( up to here I'm fine). I have to use a copy constructor to define some cellphones ( fine too). Another thing I had to do was to generate random numbers and swap the price of the cellphones ( which I'm fine with too). My problem lies in my static method. I coded it all, but I can't seem to invoke it on the cellphone.
Basically, the method has to search for cellphones in the array with the same price, swap the price, print it out, and keep a counter of the price swap it has made. But I can't seem to invoke it on eclipse. It keeps telling me it is undefined for the class cellphone ( the method modifyCellPhone)
Here's the code:
import java.util.Random;
class Cellphone {
private String brand;
private long serialNumber;
private double Price;
public Cellphone (String br, long sN, double Pr) {
[Code] .....
View Replies
View Related
Apr 9, 2014
I am trying to put a reference to a given subclass object into a linked list, and then come back later, and invoke a method of the subclass object that is in a given spot in the linked list. This produces an error because Object does not have that method. Is it necessary to cast the object to the correct subclass every time I want to use one of its methods, or is there a way to convince the JVM to treat it as always of type MySubclass?
View Replies
View Related
Jan 29, 2015
While studying polymorphism , i have some doubts that i am unable to clarify ..... Here they are :
Suppose our inheritance ladder be :
C1 <- C2 <- C3 <-....... <- C100
where C1 is most general (superclass) and C100 is most specific class .
Now , if i write java code in my main() :
C21 Obj = new C100();
Obj.someMethod();
So, what will happen in scenarios as given below :
Scenario - 1) If someMethod() is only defined in C1 ? How will compiler search for this someMethod() ?Will it be executed ?
Scenario - 2) If that someMethod() is static and only defined in C1 , then how will it be searched and executed ?
Scenario - 3) If someMethod() is only present in C100 , then what will happen ?
View Replies
View Related
May 20, 2014
I'm using apache POI to input data from a excel database. I have a method that is supposed to count the number of rows containing data so I can use that number to initialize an object array. It's returning one more than the actual number of rows and I can't figure out why.
public int getDataRange() throws IOException{
int rowCount = 0;
Iterator<Row> rows = sheet.rowIterator();
while(rows.hasNext()){
HSSFRow row = (HSSFRow) rows.next();
rowCount++;
[Code] .....
I get an array index out of bounds exception at the highlighted line.
View Replies
View Related
Dec 31, 2013
We use a Java program to read an XML file and put its content into a database. We also use Date() to get the current date and insert it into a field in database with content from XML file. Everything worked flawlessly until today, the last day of 2013. We are getting 2014 for the year instead of 2013!!! System date shows correct year, so this must not be an issue.
View Replies
View Related
Aug 1, 2014
My form looks like this:
<h:form>
<h:panelGrid columns="2" style="margin-bottom:10px" cellpadding="5">
<p:outputLabel for="filetype" value="FileType: " />
<p:selectOneRadio valueChangeListener="#{selectView.changeServerAndSignmethod}" onchange="submit()" id="filetype" value="#{selectView.filetype}">
<f:selectItems value="#{selectView.filetypes}" itemLabel="#{filetype}" itemValue="#{filetype}" />
</p:selectOneRadio>
<p:outputLabel for="signmethod" value="Sign Method: " />
<p:selectOneMenu valueChangeListener="#{selectView.changeServers}" onchange="submit()" id="signmethod" value="#{selectView.signmethod}">
<f:selectItems value="#{selectView.signmethods}" itemLabel="#{signmethod}" itemValue="#{signmethod}" />
[code]....
As you can see there are two listener in my xhtml file one for filetype and other for signmethod. When filtype changes signmethod has to change which in turn changes servers. And if user changes signmethod using dropdown then also server should change. But my problem is when filetype changes, both the listeners are called, as signmethod also changea but the value in event object (e.getNewValue()) is not the new one but old one. Here is the SelectView Bean.This is the static initialisation part just for checking the output at the end of question.
static {
initFiletypes.add("Windows");
initFiletypes.add("Mobile");
initFiletypes.add("Mac");
initFiletypes.add("Solaris");
initFiletypes.add("Jar");
windowsSignmethods.add("Microsoft");
windowsSignmethods.add("Driver");
windowsSignmethods.add("Driver_Pagehash");
windowsSignmethods.add("HDR");
windowsSignmethods.add("Java2");
windowsSignmethods.add("Javame");
windowsSignmethods.add("MicrosftApps");
[code]....
I am changing servers in changeServerAndSignmethod by selecting first signmethod from signmethod arraylist which is giving correct result. But changeServers is also getting fired taking wrong event object's newValue method and changing servers to wrong values. When changeServers is fired bydirectly changing signmethod, by dropdown, it gives correct result. Is there a way I can stop changeServers to fire when the change came from changing filetypes rather than direct change by user on signmethod selectOneMenu.
View Replies
View Related
Aug 8, 2014
I am trying to create a Android game. The game is a card game, where each card has a different action and has a different effect. My first thought was to create a Card class and somehow dynamically change the action method for each instance. However after a little bit of research it seems that may be too difficult. A different idea is that I create a class for each different card, and therefore can define the action method different for each one. However currently there is at least 300 cards and therefore I would need 300 different classes, which seems excessive.
View Replies
View Related
Apr 24, 2014
ejb. Using Eclipse and Jboss server. I've deployed an EJB and now want to invoke it using a standalone java program. I know that Eclipse and JBoss do some job to bind JNDI names. I just want to know that how to lookup EJB by which JNDI binding out of 6 options available (shown in deployment console) there.
Here I'm dropping all my java code and server/console logs...
LibrarySessionBeanRemote
package com.bhavesh.ejb;
import java.util.List;
import javax.ejb.Remote;
{Code]....
View Replies
View Related
Jan 23, 2014
I've a question regarding polymorphism.
Is polymorphism possible only when the superclass is abstract?
View Replies
View Related
Aug 25, 2014
I have difficulty understanding the following behaviour.
class A {
public String string = "a";
public String toString() {
return string;
}
}
class B extends A {
[code]...
The output of the program is 'c'. This is expexted behaviour. But if class B is changed as follows,
class B extends A {
public String string = "b";
}
Now the program prints 'a' instead of 'c'. Why the statement: b.string = "c"; is not taken into account?
View Replies
View Related
Sep 18, 2014
I have a program I want to make (text based, no gui). There is the main class, an Employee class (sort of a template), a CrewMember class, and a Manager class.
I'll put the code for each class an explain the problem I have.
package polymorphism;
import java.util.Random;
public class Start {
public static void main(String[] args) {
Random rand = new Random();
Employee staff[] = new Employee[5];
for(int i = 0; i < staff.length; i++){
[Code] ....
Some of the code is a bit incomplete simply because I ran into the problem. As you can see I made an array in the Start class and it holds objects of Employee type, but create a new instance of either a crew member or a manager, sets their wages, hours, and bonus if applicable. I know if I create an array of a certain type, I can't call upon the subclass' method (Manager in this case) because it has a new method that I added. What I'm trying to do is pretty much call upon the getSalary() method in the Manager class/object, but of course I can't. What way would i be able to do that? I tried looking for some answers. I read about making the superclass abstract and implementing it into the subclasses. Would that be an option?
View Replies
View Related
May 31, 2014
I would eliminate the ifs and elses using polymorphisms that solves this lot of ifs? How could I solve this?
View Replies
View Related
Feb 17, 2015
Recently I have been thinking of using additional interfaces in one of my libraries to hide certain "unsafe" methods of my classes from the user. I would like to get the opinion of other, more advanced java programmers on this issue.
What I do is something like the following (heavily simplified):
public interface ReadOnly {
public int getValue();
}
public interface ReadWrite extends ReadOnly {
public void setValue(int value);
[Code] ....
The user would have access to the ExternalInterface. The ExternalInterface is controlling the values of the InternalComponent. The user can get the InternalComponent, but typecasted to a ReadOnly which does not expose the setters.
Now the thing is the user can still access the setValue method by typecasting the ReadOnly to an InternalComponent or to a ReadWrite, and that is not bad. If the user knows exactly what he/she is doing this will give him/her more flexibility and more power. But this way it *should* become obvious that this is not the intended use and perhaps the extra work of typecasting will discourage the user from doing this.
View Replies
View Related
Apr 19, 2014
can we achieve runtime polymorphism by data members?
View Replies
View Related
Mar 29, 2014
I am working on eclipse kepler, JSF 2.2 with PrimeFaces 4.0 / Mojarra 2.2 library.
actually there are 2 Problems:
I still get this server message no matter what I do.
(( javax.el.PropertyNotFoundException: /Order.xhtml @28,76 value="#{kk.refugee.id}": Target Unreachable, 'refugee' returned null))
and if I delete the input text puls the hidden, the message keeps pop up for 'material' selectOneMenu. -
I have no chance to examin : ((is this javascript code correct, to copy the value of one component to the other.)) these are my xhtml file and java calsses.
**kk.java**
-----------
package khldqr.beans;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
@SessionScoped
@ManagedBean
public class kk {
[code]....
View Replies
View Related
Dec 19, 2014
dynamically create tabs by pressing a button, each tab has Primefaces input texts in which i'll be adding stuff and with a Submit button i'm submitting the form.
My issue now is this; although I can create more buttons through my managed bean, I cannot set the ValueExpression to the InputTexts. When I do:
inputName.setValueExpression("value", createValueExpression("#{cdiBean.name}",String.class)); it doesn't work.
The createValueExpression is a static method in my managed bean and it returns a ValueExpression. I'm most certain I found it online, not sure where though, it's been over a month since the last time I worked with this topic.
Anyway, is my whole "methodology" correct? Should I do anything differently?
View Replies
View Related
Jul 8, 2014
I have an editable JTable that has a lot of JComboBox's as cell entries. I would like to be able to "arrow over" to said cell, and with a pressing of either a numerical button or by typing the first letter of the String selection (possibly followed by a second), be able to select the appropriate selection from the cell's JComboBox. I have tried to add a key listener to the JComboBox itself, which works given that I click on said cell and show its menu.
How would I go about ensuring that, when focus is on the cell itself, and I start typing, the appropriate selection is chosen?? (I think this might get into key binding, but I don't know if I have to try it from the scope of JTable, or from that JTable's TableModel (which I have made my custom version of).
Here is what I have so far (everything but SandwichNumber, SandwichName, and Oregano uses JComboBox): [URL] ...., how would I do such key binding?
View Replies
View Related
Jul 1, 2014
I can't figure out how using binding on selectionModelProperty in a ListView that is using MULTIPLE selection model. I want bind my bean in which I've a list of item A and the selection of that items into the List.
ListView<A> listView; listView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
My bean return a ReadOnlyListProperty<A>
So I don't know how do:
listView.selectionModelProperty().bindBidirectional(bean.getItems());
View Replies
View Related
May 13, 2014
We are currently doing the bi directional property binding in the java code, but it would be nice to declare those bindings at the point where the UI Controls are created, ie in our FXML files.
I understand bi-directional binding of the form
value="#{controller.path.propertyName}" was removed from JavaFX 2.1
Will it be put back in 2.2?
View Replies
View Related
May 14, 2014
I'm using binding into fxml:
<Button fx:id="btnSalva" defaultButton="true" mnemonicParsing="false" disable="${controller.busy}"
onAction="#salva" prefHeight="57.0" prefWidth="141.0" styleClass="text-bold" text="Salva" />
Controller is my controller that extends another class from which it inherits busy property.
I see that fxmlloader only looks into the bottom class and not in superclasses, don't know if it's voluntarily or a bug.
View Replies
View Related
Oct 19, 2014
I want to synchronize a List<String> with the selected items of a ListView. In the real project, I want to synchronize the selected items of a TreeView and the selected images of a galery (custom control).
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import javafx.application.Application;
import javafx.beans.binding.Bindings;
import javafx.collections.FXCollections;
[Code] ....
In most cases, the program works as expected but sometimes there are some issues.
- For example, when I launch the application and select all the items with Ctrl-A, the event { [One, Two, Three] added at 0, } is fired so the list of strings contains incorrectly 4 elements [One, Two, Three, One].
- Another example, when selecting all the items (with Shift+End), two events are fired { [One] removed at 0, } and { [One, Two, Three] added at 0, }, that's correct. But when I remove the last element with Shift-Up, 3 events are fired { [Two] removed at 1, }, { [Three] removed at 2, } and { [Two] added at 1, } and an exception is thrown:
java.lang.IndexOutOfBoundsException: toIndex = 3
at java.util.ArrayList.subListRangeCheck(ArrayList.java:1004)
at java.util.ArrayList.subList(ArrayList.java:996)
at com.sun.javafx.binding.ContentBinding$ListContentBinding.onChanged(ContentBinding.java:111)
View Replies
View Related
Jul 30, 2013
My program TestBind0 (code below) tries to find/create a registry and bind an object.
Find/create: it first tests if there is already a registry on that port; if not, then it tries to create one.
The program tries to find/create the registry on ports 40654, 50876, 30321, 33445, 1099, in this order, until it succeeds in both creating the registry and binding the object. Why does TestBind0 throw for each attempt
java.rmi.ConnectException: Connection refused to host: 192.168.1.64; nested exception is:
java.net.ConnectException: Connection refused: connect
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:601)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:198)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)
at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:322)
[Code] ...
In reg.rebind("TestBind0", obj);even when I have specified -Djava.security.policy==all.policy, with file all.policy in the current dir, containing
grant {
permission java.security.AllPermission;
};
The program is run using command
java -cp bin -Djava.security.policy==all.policy TestBind0
The code:
import java.rmi.*;
import java.rmi.registry.*;
import java.rmi.server.*;
import java.util.*;
public class TestBind0 extends UnicastRemoteObject implements Counter {
private static final long serialVersionUID = 1L;
protected int count;
[Code] ....
View Replies
View Related