我很难理解什么是“静态”方法和“静态”变量,它导致我的代码出现问题。下面是我遇到困难的代码:
public class Document{
public void NewBlank(){
Resources.openRawResource(R.raw.blank);
}
}
为什么我收到错误“无法从资源类型对非静态方法Resource.openRawResource(int)进行静态引用”?为什么我不能引用非静态方法?
public class Ride {
public static String name;
public static int ticketsRequired;
public static float heightRequirement;
public Ride(String name, int ticketsRequired, float heightRequirement) {
this.name = name;
this.ticketsRequired = ticketsRequired;
this.heightRequir
当我试图评估这个扩展时
extension Int {
static var allOnes: Int {return ~Self.allZeros}
}
我得到了
x.swift:2:38: error:使用未解析的标识符'Self‘静态变量allOnes: Int {返回~Self.allZeros}
不过,我可以使用小写self。
但是allZeros是一种类型方法,所以我认为Self应该能工作。在实例上调用类型方法看起来很愚蠢(当然,我知道它是合理的)。我为什么要犯这个错误?我是否必须在扩展中操纵Self的值才能开始工作?
我在这里看到了注册表模式的问题,但是现在我被我收到的错误信息抛出了:Using $this when not in object context.
我从中获取了代码示例,并仔细研究了这些代码行,但我就是无法解决这个问题。
编辑:我从我链接到的文章不应该被认为是“工作代码”的答案中得到了一种感觉。
下面是我的注册表类代码片段:
class registry {
//Holds variables, objects, etc.
private $reg = array();
private static $instance = null;
public sta
class Test
{
private $flag;
public function __construct($flag)
{
$this->flag = $flag;
}
public function a()
{
if ($this->flag)
{
$this->b();
}
}
public function b()
{
$this->c();
}
public
我想知道非静态方法如何修改静态变量。我知道静态方法只能访问其他静态方法和静态变量。然而,另一面是真的吗?非静态方法只能访问非静态变量吗?例如:
public class SampleClass {
private static int currentCount = 0;
public SampleClass() {
currentCount++;
}
public void increaseCount() {
currentCount++;
}
}
这段代码是编译的,我想知道为什么会有静态访问权限。
据我所知,这是指当前的对象。所以,为什么我不能使用objectname.fun(objectname.nonstaticmember),而不是使用objectname.fun(this.nonstaticmember)
请参考下面的例子,并见最后两条评论。
public class Question
{
int data;
void myfun(int data)
{
System.out.println("data=="+data);
}
public Question(int data)
{
我无法编译下面的代码,因为我有17个关于“非静态变量-这不能从静态上下文中引用”的错误。它总是指向this关键字。
package MyLib;
import java.util.*;
class Book {
static int pages;
static String Title;
static String Author;
static int status;
static String BorrowedBy;
static Date ReturnDate;
static Date DueDate;
public static final int
BORROWED = 0
有人能解释为什么我得到错误“不能访问静态上下文中的非静态字段wtf,即使我不是在静态上下文中。
我在"public int变量=wtf.queuePosition“行上得到了错误;
class Test
{
public Test wtf = new Test();
public int variable = wtf.queuePosition;
private int queuePosition;
public Test()
{
queuePosition = 5;
}
}
我对Java很陌生,但我在C#上工作了多年。所以我要把用Java编写的代码翻译成C#。一切都还好,但我想出了一个似乎很奇怪的密码。以下是代码:
//Java Version
public class ParentClass{
ArrayList<SomeType> values;
void MyFunction(){ /*some codes*/ }
//other codes
public class NestedClass {
public void handleMessage(SomeType val) {
正在读一本叫做“紧急设计”的书,主题是单身.
public class MyApp {
private class SingletonHolder {
public Object singleton;
static {
singleton = new Object();
}
}
}
然后eclipse不断地抱怨静态{}
正在读Java,类应该能够有多个静态初始化器。那么,我如何才能使上述工作?
/tmp/jc_4873/MyApp.java:5: non-static variable singleton cannot be referenced from a st
我需要创建一个具有从8到12的随机值的数组,但它显示我的变量不兼容。我有什么需要改变的?X不应该是int类型的吗?
以下是包含该问题的代码的第一部分:
public class Fish {
int min = 8;
int max = 12;
int x = min + (int)(Math.random() * ((max-min) + 1));
static Fish[] myFish = new Fish[x];
static int Fcount=0;
private float weight;
public Fish(float w) { weight = w;
myFi
我一直在拼命地寻找清楚的答案,我想我有点理解它,但同时我不太明白这个关键字的广义概念,静态。
下面是我所做的设想:
package oops;
public class Math {
boolean notNumber = false;
static boolean notString = false;
public static void main(String[] args) {
int num1 = 1;
static int num2 = 1; //doesn't work
Math math = new Math();
math.no
这是我的代码:
class MyClass
{
public $prop;
public function method ()
{
echo $this->prop;
}
}
然后,在代码中的某个地方,意外地:
MyClass::method();
我预计上面这行代码会出现解释错误,因为被调用的方法不是静态的。相反,这个方法被调用了,我收到了一个关于$prop不存在的异常。因此,我理解该方法是作为静态方法调用的,尽管它不是。
它是这样工作的吗?(为什么见鬼?)
public class Main {
private final int value = 3;
public static Runnable buildRunner() {
return new Runnable() {
@Override
public void run() {
System.out.println(Main.this.value);
}
};
}
}
我使用的是Eclipse开普勒,与JRE 7。
在buil
我是Java新手,我的代码有些问题。
可以使用非静态方法displayText.setText from JTextArea类在我的静态类中显示。
非常感谢您的任何帮助!
这是我的密码:
public class GUI extends javax.swing.JFrame {
Thread send, receive, abc;
public String x;
private String response, nonStaticString;
public GUI() {
initComponents();
abc = ne
我对这如何/为什么会成为一个问题感到十分困惑:
public static long someMethod
{
long local_temp_var = PackageInfo.lastUpdateTime;
}
给出错误消息
无法对非静态字段PackageInfo.lastUpdateTime进行静态引用。
错误消息声称我试图做一个静态引用?我真的不相信我是是的,它在静态/类方法中,但是变量是本地的。
据我所知,非静态方法将为其类obj &所有封闭类分配"this“变量。
public class TestNested {
int a=4;
public static class a{
int a=5;
static int c=10;
class b{
int a=6;
void aaa(){
int a=7;
TestNested t=new TestNested();
System.out.println(this.a);
<?php
class baseModel
{
public static function show($className=__CLASS__)
{
print_r($className);
}
public function test()
{
static::show();
}
}
class AModel extends baseModel
{
public static function show($className=__CLASS__)
{
print_r(
Netbeans告诉我,从非静态方法访问静态方法是不好的。为什么这很糟糕?"Accessing method getInstance“是一个警告:
import java.util.Calendar;
public class Clock
{
// Instance fields
private Calendar time;
/**
* Constructor. Starts the clock at the current operating system time
*/
public Clock()
{
我创建了一个非静态内部类,如下所示:
class Sample {
public void sam() {
System.out.println("hi");
}
}
我在main方法中像这样调用它:
Sample obj = new Sample();
obj.sam();
它给出了一个编译错误:当我将非静态内部类声明为静态时,它可以工作:non-static cannot be referenced from a static context。为什么会这样呢?
import java.util.Scanner;
public class CHP4Ex
{
Scanner scan = new Scanner(System.in);
public static void main(String[] args)
{
System.out.println("enter a n: ");
int n = scan.nextInt();
int i=10;
while (i<n)