hadoop程序可以直接引用java类吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hadoop程序可以直接引用java类吗相关的知识,希望对你有一定的参考价值。

当然可以,hadoop本身就是java写的,在程度开发中直接引用是可以的,也有的时候,为了达到某个效果和目的,必须使用hadoop提供的类或是对java基本类的包装类,学过java 的对这个的理解应该是没问题的,如果没学过,就不好了~希望对你有帮助~追问

你好,有点关于hadoop的问题想跟您请教一下。我想实现对HDFS上的文件里的数据进行增删改查,mapreduce程序中在哪儿设置要修改文件的输入路径呢?另外,在HDFS上的文件的存储路径是什么?麻烦大神附上设置HDFS上文件路径的hadoop程序,小弟初学hadoop,不是很明白,非常感谢。。。另外,我想问问map阶段不是会对数据分块吗?我想知道,有没有指令能够读取到分块后的数据的路径?

参考技术A 什么类?追问

自己定义的一个关于数据增删改查的类

追答

可以啊

我可以参考模板的基类吗?

【中文标题】我可以参考模板的基类吗?【英文标题】:Can I refer to the template's base class? 【发布时间】:2020-06-08 10:49:06 【问题描述】:

有没有办法引用当前提供的模板的基类?例如,

template <class UserType>
class User

    public:
        User()
        
            user_manager_ = std::make_unique<UserType>();
        

   private:
        std::unique_ptr<UserType::Base> user_manager_; // <-- I want this ptr to be the type of base of UserType i.e. IUserManager

【问题讨论】:

C++ 没有反射。您可以提出自己的要求,即与此模板一起使用的每个类都必须定义一个内部 Base 类型。就像 C++ 库中的所有容器都定义了value_typeiterator 等... 除非UserType 确实定义了Base 类型,否则这是不可能的。考虑到 C++ 允许多重继承,获得单个基类的可能性就更小了。如果UserType 继承自多个基,你会选择哪一个? 另外,您需要解决的实际问题是什么?为什么需要指向基类的指针?从变量和类型的名称来看,为什么“用户”类会从“管理器”类继承? “用户不是“经理”(请记住,继承是一种“is-a”关系)。也许更好的选择是UserType 拥有一个返回指向“经理”对象的指针的函数? 可能有多个基类,所以请记住这种边缘情况。此外,虽然没有直接回答您的问题,但如果您有一组要检查的基类,可以使用 en.cppreference.com/w/cpp/types/is_base_of @Someprogrammerdude 你说的很有道理。关于名称,它们只是我想出的假设名称。实际问题不同。我想我想暗示“根据用户类型创建经理”,但这并不重要,因为这只是我写的假设。实际的一点是我希望指针是模板类的接口类型。您的解释是有道理的,为什么这是不可能的。谢谢。 【参考方案1】:

不,因为 c++ 中的多重继承。做类似事情的唯一方法是:

struct A ;

struct UserType : public A 
  using Base = A;
;

template<class UserType>
class User 
 public:
  User() 
    user_manager_ = std::make_unique<UserType>();
  

 private:
  std::unique_ptr<typename UserType::Base> user_manager_; // <-- I want this ptr to be the type of base of UserType i.e. IUserManager
;

【讨论】:

以上是关于hadoop程序可以直接引用java类吗的主要内容,如果未能解决你的问题,请参考以下文章

JAVA中子类能修改父类吗?

java执行方法一定执行类吗

Java的SpringMVC框架操作数据库,一定要建立对应的实体类吗,能不能通过直接嵌入sql命令方式操作数据库?

一个java文件可以有多个类吗?

java 继承父类 是会先执行父类吗

可以在一个.java文件中写两个类吗?