Passing instance of the class to C++
Hello,
I pass instance of an object into C++ code, and I save pointer to it inside of DLL. So can I be sure that it wont be deleted later? Caz I need to use it in C++'s thread. It should be alive during all working, and java should not move it in memory...
What do you think?
Thanks,
Dymytriy
Won't work.
Java won't delete it but it can move it.
Similar Messages
-
Passing instance parametres through classes
I'd want to know if this way of programming is good
I have a class called Application which many classes should have access to. So what I do is to pass the instance of the class through the constructors of the classes that needs the Application class and all works fine.
Don't know if this is a good programming manneer.
Thanks!Is there just one instance of the class? If so, google for "singleton pattern" and use that. It will do just what you want, will be recognized by other programmers, and is simpler.
-
Create instance of the class dynamically
hi,
i receive the class name as a string whose instance has to be created.
and i need to return the instance of the importing class.
Could anybody tell me the Functiom module or the class to achieve this.
may be an appropiate example would be very helpful.
thanks in advance
<REMOVED BY MODERATOR>
Edited by: Alvaro Tejada Galindo on Apr 28, 2008 1:18 PMDATA:
classname TYPE seoclsname,
o_ref TYPE REF TO object.
CREATE OBJECT o_ref TYPE (classname) PARAMETER-TABLE it_par
EXCEPTION-TABLE it_exc.
The class name must be set in data object classname at runtime. The object reference, o_ref, must be compatible with this class, or typed to a shared superclass or with TYPE REF TO object.
G@urav. -
Passing instance to other classes
Hi,
I have the following class
public class myApp extends SingleFrameApplicationWhen I pass the instance like as given below, the instance of SingleFrameApplication is passed. How can I pass the instance of myApp along with this, so that I can access the variables of myApp class from other classes and packages.
new TreeTableView(this);Please help.
Any help in this regard will be well appreciated with points.
Warm Regards,
RonyHi,
i think the constructor of TreeTableView looks sth. like TreeTableView(SingleFrameApplication app), so the TreeTableView takes a SingleFrameApplication and not a myApp. you have two possibilities to access your methods and variables.
1. Extend TreeTableView with a constructor TreeTableView(myApp app)
or
2. You cast the SingleFrameApplication to a myApp everytime you have to access myApp
=>
a = ((myApp)singleFrameApplicationInstance).variable; -
How can we restrict any one by creating the instance of the class
without using abstract key word...
shiv123_psl wrote:
without using abstract key word...How can we search forums? And find an almost incountable number of discussions on the Singleton "pattern"? Including the oft-repeated but ignored piece of advice that Singleton has an odour like a dead squirrel festering in an old boot in the cottage garage all summer?
The power of Google compels ye! -
How to create the instance of a class and to use this object remotely
I have to change a standalone program to do it working on a local net.
the program is prepared for this adjustment, because the only problem for this change came from the use of the database; and, in the application, all the accesses to the database come from only a class that supplies a connection to the database.
In this way I think that I could have (in a local net) a "server application" that has the database embedded inside it.
Furthermore, some client applications (running in different computers of the net) could get access to the database through the connection that comes from an instance of the class that, in the "server application", is made to provide the connection to the database.
I think this could be a good idea...
But I don't have practice with distributed applications and I would ask some suggestion about the way to realize my modification.
(in particular how to get and use, in the "client applications", the instance of the class that give the connection to the database from the "server application").
I would have some help..
thank in advance
regards
tonyMrsangelo.tonyMrsangelo wrote:
I have to change a standalone program to do it working on a local net.
the program is prepared for this adjustment, because the only problem for this change came from the use of the database; and, in the application, all the accesses to the database come from only a class that supplies a connection to the database.
In this way I think that I could have (in a local net) a "server application" that has the database embedded inside it.
Furthermore, some client applications (running in different computers of the net) could get access to the database through the connection that comes from an instance of the class that, in the "server application", is made to provide the connection to the database.
I think this could be a good idea... Which is why JEE and implementations of that exist.
But I don't have practice with distributed applications and I would ask some suggestion about the way to realize my modification.
(in particular how to get and use, in the "client applications", the instance of the class that give the connection to the database from the "server application").
You can't pass a connection from a server to a client. Nothing will do that.
As suggested you can create a simple RMI server/client set up. Or use a more feature rich (and much more complex) JEE container.
RMI is simple enough for its own tutorial
[http://java.sun.com/docs/books/tutorial/rmi/index.html]
JEE (previously called J2EE) is much more complex and requires books. You can get a brief overlook from the following
[http://java.sun.com/javaee/] -
How to call a instance method without creating the instance of a class
class ...EXCH_PRD_VERT_NN_MODEL definition
public section.
methods CONSTRUCTOR
importing
value(I_ALV_RECORDS) type ..../EXCH_VBEL_TT_ALV
value(I_HEADER) type EDIDC .
methods QUERY
importing
I_IDEX type FLAG
i_..........
returning
value(R_RESULTS) type .../EXCH_VBEL_TT_ALV .
Both methods are instance methods.
But in my program i cannot created instance of the class unless i get the results from Query.
I proposed that Query must be static, and once we get results we can create object of the class by pasing the result table which we get from method query.
But i must not change the method Query to a static method.
Is there any way out other than making method Query as static ?
Regards.You can't execute any instance method without creating instance of the class.
In your scenario, if you don't want to process your method of your class, you can check the instance has been created or not.
Like:
IF IT_QUERY IS NOT INITIAL.
CRATE OBJECT O_QUERY EXPORTING......
ENDIF.
IF O_QUERY IS NOT INITIAL.
CALL METHOD O_QUERY->QUERY EXPORTING....
ENDIF.
Regards,
Naimesh Patel -
Hello
I am learning how to create management packs with VSAE and have a question please.
When defining a Class based on LocalApplication (which I believe already has a hosting relationship with Windows Computer and therefore no need to create a hosting relationship?)
let say I define two properties one called Version and the other Vendor both based on registry values, so I include the discovery of these regsitry values in my discovery (along with the regsitry key exists to check the actual app is installed).
Now if I have a Server with only two of the above three registry items created e.g. the actual Key and Version string value but not vendor string value. Will an instance of the Class be discovered and thereby viewable in the 'discovered inventory' view?
Or do ALL properties have to be present (as defined on the class definition) for an instance of said class to be created?
Thank you
AAnotherUser__
AAnotherUser__Hello Vladimir thanks for taking the time to reply
So if I have three properties definded on my custom class, none of which are key properties and I only discover two of them (as the registry key or what ever is missing for the last property) the class should still be discovered as there are no key properties
for the custom class and therefore no key properties missing from the discovery, is that correct please?
Also I understand I have to Discover any key properties of the classes parent/s
for example
<InstanceSettings>
<Settings>
<Setting>
<Name>$MPElement[Name="Windows!Microsoft.Windows.Computer"]/PrincipalName$</Name>
<Value>$Target/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="System!System.Entity"]/DisplayName$</Name>
<Value>$Target/Property[Type="Windows!Microsoft.Windows.Computer"]/NetbiosComputerName$</Value>
</Setting>
</Settings>
I have done this, but my Class is not being discovered.
Then I saw a post which had the following, under the Class Discovery Section (along with the other properties of the class)
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
Therefore perhaps I need to add this as a property as well as an InstanceSetting?
I am using SCOM 2007 R2 at the moment
Thanks very much
AAnotherUser__
AAnotherUser__ -
Transfer of the parameters to the class
Merry Cristmas and Happy New Year to everyone!
I have the following problem
I have a class
public class Automat
public static int col;
int D_size,ia,ja;
float x_coord,y_coord;
double fy,fx,fxy;
double [] angle;
Material mat;
Automat(int dsize, int acol,int ia,int ja,float x,float y, double afx, double afy, double afxy, double[] ang, Material mat)
From another class i call this class
for(int j=0; j<50;j++)
for (int i = 0; i < 25; i++) {
automata[jkaut]=new Automat(20, col,j,i,(int)(30+0.75*20*i),(int)yey, 0,0,0,ang, null);
jkaut=jkaut+1;
But when i try to retrieve the variable
System.out.println(Integer.toString(automata[2].i));
it gives 0
Why does the variable i is not transferred to the class?
Or should i declare it public static in class A?
Thank you in advanceAs a result of my trials, i make the variables i and j
public static,
public class Automat
public static int i,j;
Material mat;
Automat(int dsize, int acol,int ia,int ja,float
t x,float y, double afx, double afy, double afxy,
double[] ang, Material mat)
angle = new double[ang.length];
System.arraycopy(ang, 0, angle, 0, angle.length);
mat =mat;
}First of all u don't need to make i and j static variables --- untill it is required by the job, which doesn't seem to be in your case. A variable declared as static implies that all the objects of the class refer to the same copy of the variable unlike a non-static variable, of which every object has it's own copy.
Secondly u don't need to make a new array angle (=new double[.....]), u can simply write write angle=ang. This will cause the pointer angle to point to the same memory address as ang. If u still have doubt look at the code posted by Naknan.
Thirdly u can't write mat=mat (i'm sure this is just a typing mistake u did). U can write this.mat = mat.
And when i call it from another class
it gaves the values of i and j, but the numeration of
hexagon is another that i expected.
and the procedure of comparisonU r getting wrong/unexpected values probably because u have made i and j static, ie u can say that whenever u pass the values of i and j in the constructor the value of i and j get modified for all the objects/instances of the class.
if(automata[jkaut].j==ints5[i] &&
automata[jkaut].i==ints6
doesn't work
is the && means "and" or am i mistakenYES && means the logical AND operation
I was not expected that is java so complex calling of
variablesU won't find the ways of calling variables in java complex once u're clear with the basics & have had some experience with it. Even a good background in C/C++ makes it absolutely easy.
It will be good for u if u go through some beginners book on java or some tutorials. -
Creating an instance of a class at runtime?
Does anyone know how to create an instance of a class at RunTime? For example, I want to load classes from a JAR file at RunTime, and then create instances of certain classes of each JAR. I ask this because I do not see how to create an instance of one of those classes the traditional way, SomeClass var = new SomeClass(). I am pretty sure that someone out there has done this and succeeded in doing it. All of the post on this stuff only talk about loading the class from a JAR file, but I have already loaded them using URLClassLoader�s findClass() method. I have also created an instance of the class that findClass() returns using newInstance(), but newInstance() returns an object of type Object. How can I convert this object to an object of type SomeClass? You cannot cast it because the compiler will complain due to the import statement issue. So if you cannot include the import statement because that classpath does not exist, then how the heck would you cast the newInstance() object into a SomeClass object?
You can cast the returned object to the type you need...that is what I do in my applet. The trick is that you must get the instance of the applets class loader (or you get a classCastException). Pay attention to this line below - that's the real key here.
"// Get a reference to the applets own classloader"
protected CBaseQuestionnaireFile m_BaseObject = null;// declared up front
m_BaseObject = loadAndRunClass("com.cpm.dataentry.questionnaire.CQuestionnaireFile");// fully qualified base object
Here is the load and run method:
CBaseQuestionnaireFile loadAndRunClass(String classname)
com.cpm.common.base.CBaseQuestionnaireFile questBase = null;
Class cClass = null;
try
// first we open the jar file with the classes we need
String[] aJarList = new String[10];
// Questionnaire format file
File fURL1 = new File(GetMainFrame().m_strQuestionnaireFileName);
URL url1 = new URL(fURL1.toURL(),"");
URL urlNew = new URL("jar:" + url1.toExternalForm() + "!/" );
// Server base class directory
String strServerDirectory = "http://" + GetMainFrame().m_strHost + "/APPLETS/";
File fURL2 = new File(strServerDirectory);
URL url2 = new URL(fURL2.toURL(),"");
URL urlNew2 = new URL("jar:" + url2.toExternalForm() + "!/" );
// Local base class directory
String strLocalDirectory = CSystem.GetBasePath() + "/Research/bin/";
File fURL3 = new File(strLocalDirectory);
URL url3 = new URL(fURL3.toURL(),"");
URL urlNew3 = new URL("jar:" + url3.toExternalForm() + "!/" );
File fURLBase = new File(CSystem.GetBasePath() + "/Research/bin/base.jar");
URL urlBase = new URL(fURLBase.toURL(),"");
URL urlNewBase = new URL("jar:" + urlBase.toExternalForm() + "!/" );
File fURLControl = new File(CSystem.GetBasePath() + "/Research/bin/controls.jar");
URL urlControl = new URL(fURLControl.toURL(),"");
URL urlNewControl = new URL("jar:" + urlControl.toExternalForm() + "!/" );
File fURLUtil = new File(CSystem.GetBasePath() + "/Research/bin/utlities.jar");
URL urlUtil= new URL(fURLUtil.toURL(),"");
URL urlNewUtil = new URL("jar:" + urlUtil.toExternalForm() + "!/" );
// Determine where to look
URL[] urlList = null;
if(GetMainFrame().m_isStandalone == false) {
// From a browser
CSystem.PrintDebugMessage("Running as an applet");
if(GetMainFrame().m_bOnLineMode == true) {
// On line
CSystem.PrintDebugMessage("*** On Line Mode ***");
urlList = new URL[2];
urlList[0] = urlNew;
urlList[1] = urlNew2;
else {
// Off line
CSystem.PrintDebugMessage("*** Off Line Mode ***");
urlList = new URL[4];
urlList[0] = urlNew;
urlList[1] = urlNewBase;
urlList[2] = urlNewControl;
urlList[3] = urlNewUtil;
else {
CSystem.PrintDebugMessage("*** Stand Alone Mode ***");
urlList = new URL[1];
urlList[0] = urlNew;
CSystem.PrintDebugMessage("Question file/path: " + GetMainFrame().m_strQuestionnaireFileName);
// Set the wait cursor
GetMainFrame().SetWaitCursor();
// Get a reference to the applets own classloader
Class myClass = getClass();
ClassLoader appletClassLoader = myClass.getClassLoader();
// Call our multi-jar class loader
JarClassLoader jarLoader = new JarClassLoader(urlList,appletClassLoader);
CSystem.PrintDebugMessage("CPM Test - passed Jar Loader" + jarLoader.toString());
// Load the classname from the jarfile
try
cClass = jarLoader.loadClass(classname);
catch(ClassNotFoundException cnfe)
Object[] optionsConfirm = { "Ok" };
JOptionPane.showOptionDialog(GetMainFrame(),"Questionnaire file is either damaged or has been tampered with.", "Questionnaire File Error",
JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, optionsConfirm, optionsConfirm[0]);
GetMainFrame().m_strQuestionnaireFileName = "";
// Clear the wait cursor
GetMainFrame().ClearWaitCursor();
return null;
Class cSuperclass = cClass.getSuperclass();
CSystem.PrintDebugMessage("Test Superclass type is: " + cSuperclass.toString());
Object o = cClass.newInstance();
CSystem.PrintDebugMessage("Test plain class type is: " + o.toString());
// Never remove this line of code
// without it, a crafty user could use our load routine
// to load/and run some nasty code
// This test makes SURE that *ONLY* questionnaires get opened
// and their methods get called
if(o instanceof com.cpm.common.base.CBaseQuestionnaireFile)
// Create the object
CSystem.PrintDebugMessage("Test Is instance of CBaseQuestionnaireFile");
CSystem.PrintDebugMessage("CPM Test - Casting to Base Class");
questBase = (com.cpm.common.base.CBaseQuestionnaireFile)o;
CSystem.PrintDebugMessage("CPM Test - Getting languages from questionnaire");
GetMainFrame().GetLanguagesFromQuestionnaire(questBase);
CSystem.PrintDebugMessage("CPM Test - Setting locale from Questionnaire selection");
questBase.SetQuestionnaireLocale(GetMainFrame().m_locale);
CSystem.PrintDebugMessage("CPM Test - Initializing Questionnaire");
questBase.Initialize();
questBase.InitializeCards();
else
Object[] optionsConfirm = { "Ok" };
JOptionPane.showOptionDialog(GetMainFrame(),"Questionnaire file is either damaged or has been tampered with.", "Questionnaire File Error",
JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, optionsConfirm, optionsConfirm[0]);
GetMainFrame().m_strQuestionnaireFileName = "";
// Clear the wait cursor
GetMainFrame().ClearWaitCursor();
return null;
catch (Exception e)
exDialog.showForThrowable(e.toString(),e);
// Clear the wait cursor
GetMainFrame().ClearWaitCursor();
// Set MouseListener Pointer
// questBase.SetMouseListenerPointer(GetMainFrame().m_mouseListener);
return questBase;
} -
Managing Multiple threads accessing a single instance of a class
Hi,
i have to redesign a class, say X, in such a way that i manage multiple threads accessing a single instance of the class, we cannot create multiple instances of X. The class looks like this:
Class X{
boolean isACalled=false;
boolean isInitCalled=false;
boolean isBCalled=false;
A(){
isACalled=true;
Init(){
if(!isACalled)
A();
B();
C();
isInitCalled=true;
B(){
if(!isACalled)
A();
isBCalled=true;
C(){
if(!isACalled)
A();
if(!isBCalled)
B();
}//end of class
Init is the method that would be invoked on the single instance of this class.
Now i cannot keep the flags as instance variables coz different threads would have differrent status of these flags at the same time, hence i can make them local, but if i make them local to one method, the others won't be able to check their status, so the only solution i can think of is to place all the flags in a hashtable local to method INIT AND INITIALIZE ALL OF them to false, as init would call other methods, it would pass the hashtable reference as an additional parameter, the methods would set the flags in the hashtable and it would be reflectecd in the original hashtable, and so all the methods can have access to the hashtable of flags and can perform their respective checks and setting of flags.
This all would be local to one thread, so there's no question of flags of one thread mixin with the flags of some other thread.
My question is :
Is this the best way, would this work?
In java, everything is pass by value, but if i pass the hashtable reference, would the changes made inside the called method to the hashtable key-value would be visible in the original hashtable declared inside the calling method of which the hashtable is local variable?In Java object variables are passed "by copy of reference", and primitive variables "by value".
The solution with HashMap/Hashtable you suggest is ok, but I think you should read about ThreadLocal class:
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/ThreadLocal.html -
How can I write an instance of a class in a static variable
Hi !
I have an instance of a class
Devisen dev = new Devisen();
In an other class I have a static method and I need there the content of some variables from dev.
public static void abc()
{ String text=dev.textfield.getText()
I get the errormessage, that the I cannot use the Not-static variable dev in a static variable.
I understand that I cannot reference to the class Devisen because Devisen is not static I so I had to reference to an instance. But an instance is the same as a class with static methodes. (I think so)
Is there a possibility, if I am in a static method, to call the content of a JTextField of an instance of a class ?
Thank you WolfgangHallo, here is more code for my problem:
class Login {
Devisen dev=new Devisen();
class Devisen {
JTextField field2;
if (!Check.check_field2()) return; // if value not okay than return
class Check {
public static void check_field2()
HOW TO GET THE CONTENT OF field2 HERE ?
One solution ist to give the instance to the static function, with the keyword "this"
if (!Check.check_field2(this)) return;and get the instance
public static void check_field2(Devisen dev)BUT is that a problem for memory to give every method an instance of the class ? I have 50 fields to control and I dont want do give every check_method an instance of Devisen, if this is a problem for performance.
Or do I only give the place where the existing instance is.
Hmm...?
Thank you Wolfgang -
How to get the class name static method which exists in the parent class
Hi,
How to know the name of the class or reference to instance of the class with in the main/static method
in the below example
class AbstA
public static void main(String[] args)
System.out.println(getXXClass().getName());
public class A extends AbstA
public class B extends AbstA
on compile all the class and run of
java A
should print A as the name
java B
should print B as the name
Are there any suggestions to know the class name in the static method, which is in the parent class.
Regards,
Raja Nagendra KumarWell, there's a hack you can use, but if you think you need it,Could you let me the hack solution for this..
you probably have a design flaw and/or a misunderstanding about how to use Java.)May be, but my needs seems to be very genuine..of not repeat the main method contents in every inherited class..
The need we have is this
I have the test cases inheriting from common base class.
When the main method of the test class is run, it is supposed to find all other test cases, which belong to same package and subpackages and create a entire suite and run the entire suite.
In the above need of the logic we wrote in the main method could handle any class provided it knows what is the child class from which this main is called.
I applicate your inputs on a better way to design without replicating the code..
In my view getClass() should have been static as the instance it returns is one for all its instances of that class.
I know there are complications the way compiler handles static vars and methods.. May be there is a need for OO principals to advance..
Regards,
Raja Nagendra Kumar
Edited by: rajanag on Jul 26, 2009 6:03 PM -
Find the Class Name in a static method
Hi All,
I am trying to find the class name inside the static main method. I want to write one main method that loads an instance of the class. Other folks have suggested tricks with the security manager or creating an Exception to look at the stack trace, but these methods don�t reflect the inheritance. I want SUBCLASSES to be able to run from the command line using the inherited main method.
public static void main(String args[]){
JPanel thisJPanel = (JPanel) Class.forName(????).newInstance();
}Any IdeasI want
SUBCLASSES to be able to run from the command line
using the inherited main method.Someone pointed this out already but more directly, static methods are not inherited.
The behavior you desire ca be achieved using the Factory pattern.
The idea of being able to subclass an application is a little bizarre. Why don't you just do something like this:
public static void main(String[] args){
// check that there is at least one parameter
JPanel thisJPanel = (JPanel) Class.forName(args[0]).newInstance();
} -
How to create an instance of a class?
how do you create sn instance of a class, and how do you call a method from another class?
You may need to read thru the information provided on this page to understand how to create objects: http://java.sun.com/docs/books/tutorial/java/data/objectcreation.html
I'd also suggest you read the tutorial available at: http://java.sun.com/docs/books/tutorial/java/index.html
Regarding how you call a method belonging to another class you could do it in the foll. ways depending on whether the method is static or not - a static method may be called using the class name followed by a dot and the static method name while a non-static method would require you to create an instance of the class and then use that instance name followed by a dot and the method name. All said and done i'd still suggest you read thru the complete Java programming tutorial to get a good grounding on all these concepts and fundamentals of the language if you are looking to master the technology.
Thanks
John Morrison
Maybe you are looking for
-
Hello I would like to report game loft order and chaos that's I but rune stones buy my visa around 300 usd and runes was on sale but thy don't add the rune stones it's 5700 Rune stones I report to game loft 6 time and thy ignore me I'm here to Compl
-
New rule is not working from 'ojaudit' though I use loadSet="Audit"
When customizing new rules in audit framework using the Jdev Extensions API, I used the below content in extension.xml file. <hooks> <jdeveloper-hook xmlns="http://xmlns.oracle.com/jdeveloper/1013/extension"> <addins> <addin loadSet="Audit">oracle.te
-
Using macbook pro to access mac pro horsepower
I currently own a macbook pro 15", and I'm thinking about getting a mac pro. But I would like to use the macbook pro (laptop henceforth) keyboard and speakers as my input and audio for the mac pro. My first question is, can this be done? Next quest
-
iphone in recovery mode,i'm restoring and updating to itunes but download cannot be completed... my phone wont open, i can't even turn the power on.what to do? pls help
-
Hi I've tried almost everything on my Macbook Pro 8,2 (i7 2.0Ghz). Wipe/Erase the SL partition. Burned the ESD dmg to a DVD. Reset SMC,PRAM and NVRAM many times. Run Repair Disk. Passed OK. Run Hardware Test. Passed OK. Download the Lion Installer 4