标签: access-modifiers

如何使用接口的私有方法?

我在使用在界面中实现的私有方法时遇到问题。

我在接口print(string, list)中私有地实现了一个方法RequestData,以隐藏实现,因为我不希望除了类的其他打印方法之外调用它 - 但我将它包含在接口中,因为它与每个实现类都相同。

问题是,当我尝试使用printmy 中FundingRequests实现该RequestData接口的方法时,它显示错误 - 该print方法在接口中的访问RequestData是私有的,因此无法找到它。

好吧...如果接口的私有方法无法从实现类中访问,那么您应该如何使用它们呢?

这是一个错误,还是我误解了接口?

界面:

package com.landbay.datamodel.data;

import java.util.List;

public interface RequestData<E> {

    void add(E newRequest);

    List<E> getRequests();

    List<E> getFulfilledRequests();

    List<E> getUnfulfilledRequests();

    void printRequests();

    void printFulfilledRequests();

    void printUnfulfilledRequests();

    private void print(String listTitle, List<E> listToPrint) {
        StringBuilder string = new StringBuilder();
        string.append(listTitle);

        for (E request : listToPrint) {
            string.append("\n").append(request);
        }

        System.out.println(string);
    }

}
Run Code Online (Sandbox Code Playgroud)

违规类和方法:

public class FundingRequests implements RequestData<FundingRequest> { …
Run Code Online (Sandbox Code Playgroud)

java oop private interface access-modifiers

2
推荐指数
1
解决办法
1283
查看次数

C# 中的 protected 和 private protected 有什么区别?

C# 中“受保护”和“私有受保护”访问修饰符有什么区别?有人可以举例说明吗?

提前致谢。

c# access-modifiers

2
推荐指数
1
解决办法
3402
查看次数

一种类型如何访问另一种类型属性的私有setter?

我只需要一种方法,使一个类的属性只能从另一个类(一种管理类)中"设置".

这在c#中甚至可能吗?

我的同事"可靠地"告诉我,我有一个设计缺陷,但我觉得在承认失败之前我至少应该问社区!

c# access-modifiers

1
推荐指数
2
解决办法
1718
查看次数

在main方法中访问的类的私有成员

我们假设我们有以下代码:

 public class TestScope {
      private int a = 1;
         public static void main(String[] args) {
           TestScope ts = new TestScope();
           ts.a = 6;
           System.out.println(ts.a);
        }
    }
Run Code Online (Sandbox Code Playgroud)

为什么在线:ts.a = 6;我可以访问私有变量a?我认为私人会员不能在外面访问.我不会低估这个例子.

java access-modifiers

1
推荐指数
2
解决办法
4339
查看次数

在ASP.NET代码隐藏中声明一个全局变量

我想声明一个Dictionary<string, object>变量,但不知道在哪里/如何.字典中的值将是来自Page(ListBoxes,DropDownLists等)的对象,因此我无法在其他地方创建辅助类.有什么办法可以让代码隐藏中的每个方法都可以访问这个变量吗?

c# asp.net class-design access-modifiers code-behind

1
推荐指数
1
解决办法
3万
查看次数

.net中的受保护和私人声明

除了在课堂外无法访问之外,受保护和私人声明之间是否存在任何差异/优势.

.net oop access-modifiers

1
推荐指数
1
解决办法
278
查看次数

将属性公开给Spark Skin类

我无法将头部缠绕在与其主机组件相关的火花皮类上.基本上,从我在Flex 4框架中出现的大多数皮肤看到的情况来看,它们并不直接暴露在主机组件中动态设置的属性.相反,它们定义暴露给外观类的状态,以定义组件应该看起来不同的时间.当你拥有一个标准状态集的非常简单的组件时,这一切都很好,但是当你在主机组件中设置了20个不同的属性(假设)应该改变皮肤的外观时它可能变得非常复杂很快.

我已经看到他们习惯于解决这个问题的方法是重写commitproperties并使skin类中的函数无效,从那里获取他们想要的属性的值,然后将它们设置为一个本地实例化的变量.皮肤类.这很好,但我觉得这只是一个修补程序,它使事情变得比它需要的复杂得多.

这是我的问题:有没有办法直接从宿主组件类公开可绑定属性,所以当你定义你的皮肤类时,它可以直接从中读取?假设您有自定义按钮,其布尔属性为"selected".在皮肤类中,您希望为属性"selected"添加get和set函数,这样您就可以在设置时对皮肤执行某些操作.你如何告诉皮肤类这是一个可用的属性供你从主机组件使用?

apache-flex access-modifiers hierarchy actionscript-3 class-hierarchy

1
推荐指数
1
解决办法
1782
查看次数

方法中的最终变量

在java中,如果方法有一个最终变量(不是静态的),并且如果我多次调用该方法,那么最终变量在每次调用中都可以有不同的值吗?

public void method1(String msg){
        final ArrayList<MessageObject> list =  method2(msg);
        // code that uses list (example just prints) 
}

method1("one")
method1("two") are two calls, 
Run Code Online (Sandbox Code Playgroud)

如果method2()为每个输入返回不同的列表,上面的代码是否有效(相对于最终修饰符?)

java access-modifiers

1
推荐指数
1
解决办法
669
查看次数

MVC在从ajax调用的方法上设置可访问性级别

我想保护我的公共方法不被用户调用.

因为我从ajax脚本调用动作,所以我不能使用任何访问修饰符(私有,受保护等).

此外,[HttpPost]不会阻止用户执行虚假请求.

有人有解决方案吗?

谢谢

asp.net-mvc access-modifiers

1
推荐指数
1
解决办法
550
查看次数

Java:如何创建一个可以在包中进行子类化的公共类,同时防止外人继承?

假设我正在写一个包.我有以下继承层次结构,都在我的包中:

public class Container {
    public void size() {
        System.out.println(10);
    }
}

public final class Bucket extends Container {}

public final class Bag extends Container {}

public class Item {
    Container container; // is aware of what container it's in. Will be initialized on construction.
    public Container getContainer() {
        return container;
    } 
}
Run Code Online (Sandbox Code Playgroud)

我想阻止其他人进行子类化Container.但我不能让它final因为BucketBag是子类.我必须做到这一点public,否则外人不能打电话getContainer().有没有办法在Java中这样做?否则,人们在这种情况下做了什么?

java inheritance subclass access-modifiers

1
推荐指数
1
解决办法
47
查看次数